首页 文章

无法加载文件或程序集Microsoft.CodeAnalysis

提问于
浏览
25

我有一个webproject我试图托管,但当服务器尝试编译它时,我收到以下错误:

未处理的异常:System.IO.FileLoadException:无法加载文件或程序集'Microsoft.CodeAnalysis,Version = 1.1.0.0,Culture = neutral,PublicKeyToken = 31bf3856ad364e35'或其依赖项之一 . 定位的程序集的清单定义与程序集引用不匹配 . (来自HRESULT的异常:0x80131040)---> System.IO.FileLoadException:无法加载文件或程序集'Microsoft.CodeAnalysis,Version = 1.0.0.0,Culture = neutral,PublicKeyToken = 31bf3856ad364e35'或其依赖项之一 . 定位的程序集的清单定义与程序集引用不匹配 . (来自HRESULT的异常:0x80131040)---内部异常堆栈跟踪结束---在Microsoft.CodeAnalysis.CSharp.CommandLine.Program.Main(String [] args)

所以服务器有一个比我的项目更旧的CodeAnalysis版本 . 所以让我们尝试绑定重定向!

<dependentAssembly>
    <assemblyIdentity name="Microsoft.CodeAnalysis" publicKeyToken="31bf3856ad364e35" culture="neutral" />
    <bindingRedirect oldVersion="0.0.0.0-9.9.9.9" newVersion="1.0.0.0" />
</dependentAssembly>

可悲的是,我仍然得到同样的错误 . 我究竟做错了什么?

5 回答

  • 4

    我自己想出来了 . 对于阅读此内容的任何人来说,问题是Nuget包 Microsoft.CodeDom.Providers.DotNetCompilerPlatform (也包含CodeAnalysis包)是错误的版本 . 我创建了一个新的webproject,立即更新了有问题的Nuget包,问题解决了 .

  • 0

    其他可能的修复(至少对于Visual Studio 2015):

    Get the latest Visual Studio update.

    您可以访问 Tools/Extensions and Updates/Updates 查看更新

    与此Q / A相同:Visual Studio 2015: Quick Actions no longer working, error: Could not load file or assembly Microsoft.CodeAnalysis

  • 32

    我解决了这个问题,但确保我的web.config中程序集的版本号是正确的 .

    Edit:

    我也遇到了这个问题,有些人可能想知道Web.Config是如何变得不正确的 . 在我的情况下,我使用Web.Config Transforms,因此Web.Config文件被覆盖:
    enter image description here

    将Web.Configs编译器(在Web.Template.Config中)中的版本号更改为与NuGet版本匹配的数字确实解决了问题:

    <compiler language="c#;cs;csharp" extension=".cs" type="Microsoft.CodeDom.Providers.DotNetCompilerPlatform.CSharpCodeProvider, Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=1.0.5.0
    
  • -1

    如果没有提到的选项,请转到这个答案 . 基本上,您正在向GAC注册 Microsoft.CodeAnalysis.dll

    Could not load file or assembly 'Microsoft.CodeAnalysis, version= 1.3.1.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' or one of its dependenc

  • 4

    右键单击您的项目>>管理Nuget包管理器以获取解决方案>>点击更新>>更新您的'Microsoft.CodeDom.Providers.DotNetCompilerPlatform'>>然后再次运行您的项目 .

相关问题