从ASP.Net Core 1.1迁移到2.0时BadImageFormatException

ken*_*n2k 8 c# asp.net asp.net-mvc asp.net-core asp.net-core-2.0

我刚刚将ASP.Net Core 1.1应用程序迁移到刚刚发布的新2.0版本.现在我得到以下异常:

System.BadImageFormatException:'无法加载文件或程序集'dotnet-aspnet-codegenerator-design'或其依赖项之一.试图加载格式不正确的程序.

在以下行(AddMvc)上抛出异常:

public IServiceProvider ConfigureServices(IServiceCollection services)
{
    ...
    services.AddMvc(options =>
        {
            options.Filters.Add(new MiddlewareFilterAttribute(typeof(LocalizationPipeline)));
        })
        .AddJsonOptions(options =>
        {
            // Maintain property names during serialization. See:
            // https://github.com/aspnet/Announcements/issues/194
            options.SerializerSettings.ContractResolver = new DefaultContractResolver();
        })
        .AddViewLocalization(LanguageViewLocationExpanderFormat.Suffix)
        .AddDataAnnotationsLocalization();
}
Run Code Online (Sandbox Code Playgroud)

讨厌的例外截图

我使用AnyCPU目标平台瞄准.Net Framework 4.7 .如果有任何帮助,我正在使用win10-x64 RID.每个Nuget包都是最新的等.

任何的想法?谷歌搜索我没有运气.

Dav*_*ing 6

当我从x86切换到x64(从核心1.1升级到2.0之后)时发生了同样的异常.

由于在运行时并不真正需要dotnet-aspnet-codegenerator-design,因此我删除了该引用.但是,Microsoft.AspNetCore.Server.Kestrel.Transport.Libuv程序集发生了相同的异常.

幸运的是,这个问题与我没有更改.NET核心运行时标识符(RID)的事实有关.这仍然是在win7-x86上设置的,因此我将其更改为win7-x64并且Libuv可能会加载.

我希望dotnet-aspnet-codegenerator-design会有一些修复,因为脚手架控制器和视图可能需要依赖...

更新:Github上存在此问题(https://github.com/aspnet/Scaffolding/issues/601)