ASP.Net StructureMap.Dnx 的 DNX Core CLR 问题:类型 'Object' 在未引用的程序集中定义
ASP.Net DNX Core CLR issue with StructureMap.Dnx: The type 'Object' is defined in an assembly that is not referenced
我正在我的 Mac 和 运行 上尝试新的核心 CLR 类型 ASP.Net,但问题无穷无尽。
我已经设法通过 dnu 和 dnu restore 引用并安装了 StructureMap,但现在我在 VS Code 中收到错误说明:
The type 'Object' is defined in an assembly that is not referenced. You must add a reference to assembly 'mscorlib, Version=2.0.5.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e, Retargetable=Yes'. [dnx451]
我已经进行了大量的谷歌搜索,但我只能找到说明我需要为系统添加 using 的内容,但这并不能解决问题。
Startup.cs:
using System;
using System.Reflection;
using Microsoft.AspNet.Builder;
using Microsoft.AspNet.Http;
using Microsoft.Extensions.DependencyInjection;
using StructureMap;
namespace Authorization
{
public class Startup
{
// This method gets called by the runtime. Use this method to add services to the container.
// For more information on how to configure your application, visit http://go.microsoft.com/fwlink/?LinkID=398940
public IServiceProvider ConfigureServices(IServiceCollection services)
{
var container = new Container();
container.Configure(x => {
x.Scan(scanning => {
scanning.Assembly(Assembly.GetExecutingAssembly());
scanning.TheCallingAssembly();
scanning.WithDefaultConventions();
});
});
container.Populate(services);
return container.GetInstance<IServiceCollection>(services);
}
// This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
public void Configure(IApplicationBuilder app)
{
app.UseIISPlatformHandler();
app.Run(async (context) =>
{
await context.Response.WriteAsync("Hello World!");
});
}
// Entry point for the application.
public static void Main(string[] args) => Microsoft.AspNet.Hosting.WebApplication.Run<Startup>(args);
}
}
project.json:
{
"version": "1.0.0-*",
"compilationOptions": {
"emitEntryPoint": true
},
"tooling": {
"defaultNamespace": "Authorization"
},
"dependencies": {
"Microsoft.AspNet.IISPlatformHandler": "1.0.0-rc1-final",
"Microsoft.AspNet.Server.Kestrel": "1.0.0-rc1-final",
"StructureMap.Dnx": "0.4.0-alpha4"
},
"commands": {
"web": "Microsoft.AspNet.Server.Kestrel"
},
"frameworks": {
"dnx451": {},
"dnxcore50": {}
},
"exclude": [
"wwwroot",
"node_modules"
],
"publishExclude": [
"**.user",
"**.vspscc"
]
}
感谢收到任何帮助!
谢谢
我试了一点,可以给你两个版本来解决编译问题。
第一种方法是删除 dnxcore50
并在 Startup.cs
中进行一些更改。确切地说,可以使用以下 project.json
:
{
"version": "1.0.0-*",
"compilationOptions": {
"emitEntryPoint": true
},
"dependencies": {
"Microsoft.AspNet.IISPlatformHandler": "1.0.0-rc1-final",
"Microsoft.AspNet.Server.Kestrel": "1.0.0-rc1-final",
"structuremap": "4.0.1.318",
"StructureMap.Dnx": "0.4.0-alpha4"
},
"commands": {
"web": "Microsoft.AspNet.Server.Kestrel"
},
"frameworks": {
"dnx451": { }
},
"exclude": [
"wwwroot",
"node_modules"
],
"publishExclude": [
"**.user",
"**.vspscc"
]
}
以及以下 Startup.cs
:
using System.Reflection;
using Microsoft.AspNet.Builder;
using Microsoft.AspNet.Http;
using Microsoft.Extensions.DependencyInjection;
using StructureMap;
using StructureMap.Graph;
namespace HelloWorldWebApplication
{
public class Startup
{
public IServiceCollection ConfigureServices(IServiceCollection services)
{
var container = new Container();
container.Configure(x => {
x.Scan(scanning => {
scanning.Assembly(typeof(Startup).GetTypeInfo().Assembly);
scanning.TheCallingAssembly();
scanning.WithDefaultConventions();
});
});
container.Populate(services);
return container.GetInstance<IServiceCollection>();
}
public void Configure(IApplicationBuilder app)
{
app.UseIISPlatformHandler();
app.Run(async context => {
await context.Response.WriteAsync("Hello World!");
});
}
public static void Main(string[] args) => Microsoft.AspNet.Hosting.WebApplication.Run<Startup>(args);
}
}
或者可以在 "frameworks"
部分加回 "dnxcore50": { }
,但要注释行 scanning.TheCallingAssembly();
和 using StructureMap.Graph;
我也遇到这个错误。我刚刚从 dnx 文件夹中删除了所有包,并通过 "dnu restore" 再次恢复了所有包,它已修复。
我正在我的 Mac 和 运行 上尝试新的核心 CLR 类型 ASP.Net,但问题无穷无尽。
我已经设法通过 dnu 和 dnu restore 引用并安装了 StructureMap,但现在我在 VS Code 中收到错误说明:
The type 'Object' is defined in an assembly that is not referenced. You must add a reference to assembly 'mscorlib, Version=2.0.5.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e, Retargetable=Yes'. [dnx451]
我已经进行了大量的谷歌搜索,但我只能找到说明我需要为系统添加 using 的内容,但这并不能解决问题。
Startup.cs:
using System;
using System.Reflection;
using Microsoft.AspNet.Builder;
using Microsoft.AspNet.Http;
using Microsoft.Extensions.DependencyInjection;
using StructureMap;
namespace Authorization
{
public class Startup
{
// This method gets called by the runtime. Use this method to add services to the container.
// For more information on how to configure your application, visit http://go.microsoft.com/fwlink/?LinkID=398940
public IServiceProvider ConfigureServices(IServiceCollection services)
{
var container = new Container();
container.Configure(x => {
x.Scan(scanning => {
scanning.Assembly(Assembly.GetExecutingAssembly());
scanning.TheCallingAssembly();
scanning.WithDefaultConventions();
});
});
container.Populate(services);
return container.GetInstance<IServiceCollection>(services);
}
// This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
public void Configure(IApplicationBuilder app)
{
app.UseIISPlatformHandler();
app.Run(async (context) =>
{
await context.Response.WriteAsync("Hello World!");
});
}
// Entry point for the application.
public static void Main(string[] args) => Microsoft.AspNet.Hosting.WebApplication.Run<Startup>(args);
}
}
project.json:
{
"version": "1.0.0-*",
"compilationOptions": {
"emitEntryPoint": true
},
"tooling": {
"defaultNamespace": "Authorization"
},
"dependencies": {
"Microsoft.AspNet.IISPlatformHandler": "1.0.0-rc1-final",
"Microsoft.AspNet.Server.Kestrel": "1.0.0-rc1-final",
"StructureMap.Dnx": "0.4.0-alpha4"
},
"commands": {
"web": "Microsoft.AspNet.Server.Kestrel"
},
"frameworks": {
"dnx451": {},
"dnxcore50": {}
},
"exclude": [
"wwwroot",
"node_modules"
],
"publishExclude": [
"**.user",
"**.vspscc"
]
}
感谢收到任何帮助!
谢谢
我试了一点,可以给你两个版本来解决编译问题。
第一种方法是删除 dnxcore50
并在 Startup.cs
中进行一些更改。确切地说,可以使用以下 project.json
:
{
"version": "1.0.0-*",
"compilationOptions": {
"emitEntryPoint": true
},
"dependencies": {
"Microsoft.AspNet.IISPlatformHandler": "1.0.0-rc1-final",
"Microsoft.AspNet.Server.Kestrel": "1.0.0-rc1-final",
"structuremap": "4.0.1.318",
"StructureMap.Dnx": "0.4.0-alpha4"
},
"commands": {
"web": "Microsoft.AspNet.Server.Kestrel"
},
"frameworks": {
"dnx451": { }
},
"exclude": [
"wwwroot",
"node_modules"
],
"publishExclude": [
"**.user",
"**.vspscc"
]
}
以及以下 Startup.cs
:
using System.Reflection;
using Microsoft.AspNet.Builder;
using Microsoft.AspNet.Http;
using Microsoft.Extensions.DependencyInjection;
using StructureMap;
using StructureMap.Graph;
namespace HelloWorldWebApplication
{
public class Startup
{
public IServiceCollection ConfigureServices(IServiceCollection services)
{
var container = new Container();
container.Configure(x => {
x.Scan(scanning => {
scanning.Assembly(typeof(Startup).GetTypeInfo().Assembly);
scanning.TheCallingAssembly();
scanning.WithDefaultConventions();
});
});
container.Populate(services);
return container.GetInstance<IServiceCollection>();
}
public void Configure(IApplicationBuilder app)
{
app.UseIISPlatformHandler();
app.Run(async context => {
await context.Response.WriteAsync("Hello World!");
});
}
public static void Main(string[] args) => Microsoft.AspNet.Hosting.WebApplication.Run<Startup>(args);
}
}
或者可以在 "frameworks"
部分加回 "dnxcore50": { }
,但要注释行 scanning.TheCallingAssembly();
和 using StructureMap.Graph;
我也遇到这个错误。我刚刚从 dnx 文件夹中删除了所有包,并通过 "dnu restore" 再次恢复了所有包,它已修复。