【问题标题】:Could not load type from assembly - ASP.NET Core无法从程序集中加载类型 - ASP.NET Core
【发布时间】:2016-08-05 10:17:29
【问题描述】:

将 MVC 中间件添加到 ASP.NET Core 解决方案时出现以下错误

System.TypeLoadException 无法从程序集中加载类型“Microsoft.Extensions.DependencyInjection.Extensions.ServiceCollectionExtensions” 'Microsoft.Extensions.DependencyInjection.Abstractions, Version=1.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60'。

Line 26:          public void ConfigureServices(IServiceCollection services)
Line 27:          {
Line 28:              services.AddMvc();
Line 29:              services.AddSingleton(provider => Configuration);
Line 30:              services.AddSingleton<IGreeter, Greeter>();

 at Microsoft.Extensions.DependencyInjection.OptionsServiceCollectionExtensions.AddOptions(IServiceCollection services) 
at Microsoft.Extensions.DependencyInjection.MvcCoreServiceCollectionExtensions.AddMvcCore(IServiceCollection services, Action<MvcOptions> setupAction) 
at Microsoft.Extensions.DependencyInjection.MvcServiceCollectionExtensions.AddMvc(IServiceCollection services, Action<MvcOptions> setupAction) 
at OdeToFood2.Startup.ConfigureServices(IServiceCollection services) in C:\Users\aindriu\documents\visual studio 2015\Projects\OdeToFood2\src\OdeToFood2\Startup.cs:line 28
System.Reflection.TargetInvocationException
Exception has been thrown by the target of an invocation.
at System.RuntimeMethodHandle.InvokeMethod(object target, Object[] arguments, Signature sig, bool constructor) 
at System.Reflection.RuntimeMethodInfo.UnsafeInvokeInternal(object obj, Object[] parameters, Object[] arguments) 
at System.Reflection.RuntimeMethodInfo.Invoke(object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture) 
at Microsoft.AspNetCore.Hosting.Internal.ConfigureServicesBuilder.Invoke(object instance, IServiceCollection exportServices) 
at Microsoft.AspNetCore.Hosting.Internal.WebHost.EnsureApplicationServices() 
at Microsoft.AspNetCore.Hosting.Internal.WebHost.BuildApplication()

我在 project.json 文件中的依赖项是

    {
  "dependencies": {
    "Microsoft.NETCore.App": {
      "version": "1.0.0",
      "type": "platform"
    },
    "Microsoft.AspNet.Mvc": "6.0.0-rc1-final",
    "Microsoft.AspNetCore.Diagnostics": "1.0.0",
    "Microsoft.AspNetCore.Server.IISIntegration": "1.0.0",
    "Microsoft.AspNetCore.Server.Kestrel": "1.0.0",
    "Microsoft.Extensions.Logging.Console": "1.0.0",
    "Microsoft.Extensions.Configuration.Json": "1.0.0",
    "Microsoft.AspNetCore.Diagnostics.EntityFrameworkCore": "1.0.0",
    "Microsoft.AspNet.Diagnostics": "1.0.0-rc1-final",
    "Microsoft.AspNet.StaticFiles": "1.0.0-rc1-final",
    "Microsoft.AspNetCore.StaticFiles": "1.0.0",
    "Microsoft.AspNetCore.Mvc.Core": "1.0.0",
    "Autofac.Extensions.DependencyInjection": "4.0.0-rc3-309"
  },

json文件中不同版本之间是否存在冲突?

这是我的解决方案 -

https://dl.dropboxusercontent.com/u/10629841/OdeToFood2.zip

【问题讨论】:

  • 您是否尝试将所有 RC{1,2,3} .NET Core 依赖项替换为 1.0.0?
  • 我更换了两个但没有改变 "Microsoft.AspNet.Diagnostics": "1.0.0", "Microsoft.AspNetCore.StaticFiles": "1.0.0",

标签: asp.net


【解决方案1】:

我使用“yo aspnet”创建了一个全新的 web api 应用程序,并拥有以下 project.json:

"Microsoft.AspNetCore.Mvc": "1.0.0",
"Microsoft.AspNetCore.Mvc.Core": "1.0.0",
"Microsoft.AspNetCore.StaticFiles": "1.0.0",
"Microsoft.AspNetCore.Server.IISIntegration": "1.0.0",
"Microsoft.AspNetCore.Server.Kestrel": "1.0.0",
"Microsoft.Extensions.Configuration.EnvironmentVariables": "1.0.0",
"Microsoft.Extensions.Configuration.FileExtensions": "1.0.0",
"Microsoft.Extensions.Configuration.Json": "1.0.0",
"Microsoft.Extensions.Configuration.CommandLine": "1.0.0",
"Microsoft.Extensions.Logging": "1.0.0",
"Microsoft.Extensions.Logging.Console": "1.0.0",
"Microsoft.Extensions.Logging.Debug": "1.0.0",
"Microsoft.Extensions.Options.ConfigurationExtensions": "1.0.0"

为了得到你在我必须添加 Microsoft.AspNetCore.Mvc.Core 和 Microsoft.AspNetCore.StaticFiles 之后的样子。

如果解决了问题,请告诉我。

【讨论】:

  • 我认为 AspNetCore 和 ASPNet 之间存在混淆。当我使用上述依赖项时,它有点令人困惑,但还没有任何效果
  • 因此,如果您删除所有依赖项并添加上面的依赖项,它仍然会失败吗?
  • 我必须创建一个新项目并让它工作。我不知道问题出在哪里,但我认为这是 ASP.NET 和 ASP.NET CORE 1.0 之间的冲突——我认为它们都做了类似的事情,但我做了某种交叉。
  • 很可能是这样。我也开始创建一个全新的项目。很高兴你能成功!
【解决方案2】:

您的 project.json 中是否缺少这两者之一?

"Microsoft.Extensions.DependencyInjection":"1.0.0",
"Microsoft.Extensions.DependencyInjection.Abstractions":"1.0.0",

【讨论】:

  • 添加后是否运行过 dotnet restore 仍然出现同样的错误?
  • 是的,我运行了 dotnet restore 但仍然出现同样的错误。我似乎有这个解决方案的中间件问题,但安装了正确的 NuGet 包并且看不到问题是什么?
  • 您是否尝试过使用 Microsoft.AspNetCore.Mvc v1.0.0 包而不是 rc1-final?我刚刚运行了“yo aspnet”,并且拥有全新 Web API 应用程序的所有稳定版本。也许您需要升级?
  • 我安装了 Microsoft.AspNetCore.Mvc.Core 1.0.0。我尝试添加中间件,例如 // app.UseMvcWithDefaultRoute(); // app.UseDefaultFiles(); // app.UseStaticFiles();但我不断收到消息说我没有定义.....我添加了解决方案,它很小
  • 我刚刚对其进行了测试,可以使用“app.UseMvcWithDefaultRoute();”。我有 Microsoft.AspNetCore.Mvc 和 Microsoft.AspNetCore.Mvc.Core 库。我必须运行 dotnet restore 并且它有效。我在文档中发现有问题的方法docs.asp.net/projects/api/en/latest/autoapi/Microsoft/… 所以它应该在那里
猜你喜欢
  • 2018-06-02
  • 2020-08-14
  • 1970-01-01
  • 1970-01-01
  • 2012-05-05
  • 1970-01-01
  • 2011-09-07
  • 2016-09-27
  • 2010-11-30
相关资源
最近更新 更多