Microsoft.AspNetCore.Hosting的System.BadImageFormatException

时间:2017-02-23 12:53:38

标签: c# .net iis asp.net-core .net-core

似乎我以某种方式设法破坏了我的机器的.NET Core安装。我无法运行任何基本的ASP.NET核心应用程序。而是发生以下错误:

  

发生了System.BadImageFormatException

     

的HResult = 0x80131018

     

消息=无法加载文件或程序集'Microsoft.AspNetCore.Hosting,Version = 1.1.0.0,Culture = neutral,PublicKeyToken = adb9793829ddae60'。该模块应该包含一个程序集清单。

     

源= <Cannot evaluate the exception source>

     

堆栈跟踪:          在CoreTest2017.Program.Main(String [] args)中的C:\ CoreTest2017 \ CoreTest2017 \ Program.cs:第23行

无论我运行的是哪个.NET Core版本,都会发生这种情况。我还没有尝试重新安装任何东西(我没有在这个工作机器上的本地管理员权限...)所以我想先检查一下是否有人遇到过这个问题,特别是因为它与ASP.NET Core有关

为清楚起见,这是Web应用程序的标准模板。 Program.cs内容为:

using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Hosting;

namespace CoreTest2017
{
    public class Program
    {
        public static void Main(string[] args)
        {
            var host = new WebHostBuilder()
                .UseKestrel()
                .UseContentRoot(Directory.GetCurrentDirectory())
                .UseIISIntegration()
                .UseStartup<Startup>()
                .UseApplicationInsights()
                .Build();

            host.Run();
        }
    }
}

这是.csproj标记(这是针对空的Web项目,它以同样的方式失败):

<Project Sdk="Microsoft.NET.Sdk.Web">

  <PropertyGroup>
    <TargetFramework>netcoreapp1.1</TargetFramework>
  </PropertyGroup>

  <ItemGroup>
    <Folder Include="wwwroot\" />
  </ItemGroup>
  <ItemGroup>
    <PackageReference Include="Microsoft.ApplicationInsights.AspNetCore" Version="2.0.0" />
    <PackageReference Include="Microsoft.AspNetCore" Version="1.1.0" />
  </ItemGroup>

</Project>

有人能指出我正确的方向吗?

1 个答案:

答案 0 :(得分:2)

  

预计该模块将包含一个程序集清单。

当您混合使用x86 / x64位时,可能会发生这种情况。但由于有问题的程序集是Microsoft.AspNetCore.Hosting,我怀疑问题是你的NuGet缓存以某种方式被破坏了。尝试删除&#34;%USERPROFILE%.nuget \ packages \ Microsoft.AspNetCore.Hosting&#34;并重新恢复。

如果您仍然遇到错误,则可能需要调试主机以确定它尝试加载的程序集。将环境变量COREHOST_TRACE设置为1并运行您的应用程序。这将生成有关您的应用尝试加载哪些程序集的详细信息。