仅在部署时无法加载文件或程序集Microsoft.CodeAnalysis.CSharp,Version = 1.0.0.0

问题描述 投票:0回答:1

我有一个Visual Studio解决方案,其中包含一个asp.net Web应用程序项目和一个类库项目。

我在Visual Studio中调试应用程序时运行正常,但是当我使用WebDeploy部署它时,加载页面时出现以下异常:

System.IO.FileLoadException:
Could not load file or assembly 'Microsoft.CodeAnalysis.CSharp, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' or one of its dependencies. The located assembly's manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040)

部署到文件夹时也会发生这种情况。

我的Web项目引用了通过Nuget安装的Microsoft.CodeAnalysis.CSharp 3.0.0版,我可以在packages文件夹中看到它。 Web.config包含以下内容:

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

超级困惑 - 我在任何地方都看不到任何1.0.0.0引用,我不知道我应该如何解决这个问题。我甚至尝试手动安装Microsoft.CodeAnalysis.CSharp版本1.0.0.0和当前版本,没有任何变化。

编辑:

好的,这似乎可以通过在部署时关闭“在发布期间预编译”选项来解决。犹豫要回答我自己的帖子因为我怀疑这不是一个真正的解决方案。

c# asp.net .net visual-studio-2017 webdeploy
1个回答
0
投票

如果您使用的是较旧版本的Microsoft.CodeDom.Providers.DotNetCompilerPlatform nuget,您可以更新它并尝试重新部署。

Microsoft.CodeDom.Providers.DotNetCompilerPlatform也引用了Microsoft.CodeAnalysis.CSharp

© www.soinside.com 2019 - 2024. All rights reserved.