我将我的项目迁移到 ASP.NET Core 1.1.0 和 Entity Framework Core 1.1,并且在开发中一切正常。
但不可能在暂存中部署项目,我从标准输出日志中收到此错误:
应用程序启动异常:System.IO.FileLoadException: Impossible de Charger le fichier ou l'assembly 'Microsoft.Extensions.DependencyInjection.Abstractions, Version=1.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60' ou une de ses d‚pendances。La d‚finition trouv‚e du manifeste de l'assembly ne 对应 pas … la r‚f‚rence de l'assembly。(HRESULT 异常:0x80131040)Nom de fichierÿ:'Microsoft.Extensions.DependencyInjection.Abstractions,版本 = 1.0.0.0,文化 = 中性,PublicKeyToken = adb9793829ddae60'
... Agata.Presentation.Web.Startup.ConfigureServices(IServiceCollection services) --- Fin de la trace de la pile ... partir de l'emplacement pr‚c‚dent au niveau duquel l'exception a‚t‚lev‚e -- - ... System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() ... Microsoft.AspNetCore.Hosting.ConventionBasedStartup.ConfigureServices(IServiceCollection 服务) ... Microsoft.AspNetCore.Hosting.Internal.WebHost.EnsureApplicationServices() ... Microsoft.AspNetCore.Hosting.Internal。 WebHost.BuildApplication()
我检查了解决方案中包含的所有项目的所有 nuget 包,并且所有依赖项都是最新的。
我已经删除了所有暂存目录并完全重新部署它以确保没有旧的 dll 但错误仍然存在。我还多次重新启动 IIS 池和网站。
并且在服务器上安装了 .NET Core 1.1.0。
任何人都知道这里发生了什么?
编辑:这是我的 project.json :
"dependencies": {
"Microsoft.ApplicationInsights.AspNetCore": "1.0.2",
"Microsoft.AspNetCore.Diagnostics": "1.1.0",
"Microsoft.AspNetCore.Razor.Tools": "1.0.0-preview3-final",
"Microsoft.VisualStudio.Web.CodeGeneration.Tools": "1.0.0-preview3-final",
"Microsoft.VisualStudio.Web.CodeGenerators.Mvc": "1.0.0-preview3-final",
"Npgsql": "3.1.6",
"Remotion.Linq": "2.1.1",
"Serilog.Sinks.RollingFile": "3.2.0",
"Microsoft.AspNetCore.Identity.EntityFrameworkCore": "1.1.0",
"Microsoft.AspNetCore.Server.IISIntegration": "1.1.0",
"Microsoft.AspNetCore.Server.Kestrel": "1.1.0",
"Microsoft.AspNetCore.StaticFiles": "1.1.0",
"Microsoft.EntityFrameworkCore.SqlServer": "1.1.0",
"Microsoft.EntityFrameworkCore.SqlServer.Design": "1.1.0",
"Microsoft.Extensions.Configuration.Binder": "1.1.0",
"Microsoft.Extensions.Configuration.EnvironmentVariables": "1.1.0",
"Microsoft.Extensions.Configuration.Json": "1.1.0",
"Microsoft.Extensions.Configuration.UserSecrets": "1.1.0",
"Microsoft.Extensions.Logging.Console": "1.1.0",
"Microsoft.Extensions.Logging.Debug": "1.1.0",
"Serilog.Extensions.Logging": "1.3.0",
"Microsoft.AspNetCore.Authentication.Cookies": "1.1.0",
"Microsoft.AspNetCore.Diagnostics.EntityFrameworkCore": "1.1.0",
"Microsoft.AspNetCore.Mvc": "1.1.0",
"Microsoft.Extensions.Logging": "1.1.0",
"Microsoft.EntityFrameworkCore": "1.1.0",
"System.Interactive.Async": "3.1.0",
"Microsoft.Extensions.DependencyInjection.Abstractions": "1.1.0",
"Microsoft.EntityFrameworkCore.Tools": "1.1.0-preview4-final"
},
"tools": {
"Microsoft.Extensions.SecretManager.Tools": "1.1.0-preview4-final",
"Microsoft.VisualStudio.Web.CodeGeneration.Tools": "1.1.0-preview4-final"
},
编辑:现在的问题不同了,现在的错误是:
应用程序启动异常:System.IO.FileLoadException: Impossible de Charger le fichier ou l'assembly 'System.Interactive.Async, Version=3.0.0.0, Culture=neutral, PublicKeyToken=94bc3704cddfc263' ou une de ses d‚pendances。La d‚finition trouv‚e du manifeste de l'assembly ne 对应 pas … la r‚f‚rence de l'assembly。(HRESULT 异常:0x80131040)Nom de fichierÿ:'System.Interactive.Async,版本=3.0.0.0,Culture=neutral,PublicKeyToken=94bc3704cddfc263' ... Microsoft.EntityFrameworkCore.Infrastructure.EntityFrameworkServiceCollectionExtensions.AddQuery(IServiceCollection serviceCollection) ... Microsoft.EntityFrameworkCore .Infrastructure.EntityFrameworkServiceCollectionExtensions.AddEntityFramework(IServiceCollection serviceCollection) …微软。
这是我更新的 project.json :
"dependencies": {
"Npgsql": "3.1.6",
"Remotion.Linq": "2.1.1",
"Serilog.Sinks.RollingFile": "3.2.0",
"Microsoft.AspNetCore.Identity.EntityFrameworkCore": "1.1.0",
"Microsoft.AspNetCore.Server.IISIntegration": "1.1.0",
"Microsoft.AspNetCore.Server.Kestrel": "1.1.0",
"Microsoft.AspNetCore.StaticFiles": "1.1.0",
"Microsoft.EntityFrameworkCore.SqlServer": "1.1.0",
"Microsoft.EntityFrameworkCore.SqlServer.Design": "1.1.0",
"Microsoft.Extensions.Configuration.Binder": "1.1.0",
"Microsoft.Extensions.Configuration.EnvironmentVariables": "1.1.0",
"Microsoft.Extensions.Configuration.Json": "1.1.0",
"Microsoft.Extensions.Configuration.UserSecrets": "1.1.0",
"Microsoft.Extensions.Logging.Console": "1.1.0",
"Microsoft.Extensions.Logging.Debug": "1.1.0",
"Serilog.Extensions.Logging": "1.3.0",
"Microsoft.AspNetCore.Authentication.Cookies": "1.1.0",
"Microsoft.AspNetCore.Diagnostics.EntityFrameworkCore": "1.1.0",
"Microsoft.AspNetCore.Mvc": "1.1.0",
"Microsoft.Extensions.Logging": "1.1.0",
"Microsoft.EntityFrameworkCore": "1.1.0",
"Microsoft.Extensions.DependencyInjection.Abstractions": "1.1.0",
"Microsoft.EntityFrameworkCore.Tools": "1.1.0-preview4-final",
"System.Interactive.Async": "3.1.0"
},
"tools": {
"Microsoft.Extensions.SecretManager.Tools": "1.1.0-preview4-final",
"Microsoft.VisualStudio.Web.CodeGeneration.Tools": "1.1.0-preview4-final"
},
我的启动文件的第 65 行是:
services.AddEntityFrameworkSqlServer().AddDbContext<MyDbContext>(options => options.UseSqlServer(Configuration.GetConnectionString("MyDbConnectionString")));
在使用 Visual Studio 进行调试时,它仍然可以正常工作...
编辑 2:我解决了System.Interactive.Async更新Serilog.Extensions.Logging包...我现在有错误:
System.IO.FileLoadException: Impossible de Charger le fichier ou l'assembly 'System.Collections.Immutable, Version=1.1.37.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' ou une de ses dépendances。La définition trouvée du manifeste de l'assembly ne 对应 pas à la référence de l'assembly。(HRESULT 异常:0x80131040)名称:'System.Collections.Immutable,Version=1.1.37.0,Culture=neutral,PublicKeyToken=b03f5f7f11d50a3a'à
Microsoft.AspNetCore.Mvc.Razor.Internal.RazorReferenceManager..ctor(ApplicationPartManager partManager , IOptions`1 optionsAccessor) --- Fin de la trace de la Pile à partir de l'emplacement précédent au niveau duquel l'exception a été levée ---
我只是对这个部署发疯了......
解决方案:部署 Web 应用程序可执行文件的配置文件,其中包含一些类库依赖项绑定