【发布时间】:2019-04-30 07:02:35
【问题描述】:
我有一个带有 asp.net Web 应用程序项目和一个类库项目的 Visual Studio 解决方案。
当我在 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 项目引用 Microsoft.CodeAnalysis.CSharp 版本 3.0.0,通过 Nuget 安装,我可以在包文件夹中看到它。 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 版,但没有任何变化。
编辑:
好的,所以这似乎可以通过在部署时关闭“发布期间预编译”选项关闭来解决。犹豫要不要回答我自己的帖子,因为我怀疑这不是一个真正的解决方案。
【问题讨论】:
-
您是在 Debug 还是 Release 模式下部署项目?并且你在构建之后看到bin文件夹中对应的dll了吗?如果是,那么检查 dll 的版本,你实际上有什么版本?
-
@Leon 谢谢,它处于发布模式,现在不确定版本,但关闭“发布期间预编译”选项至少可以阻止此错误..
标签: c# asp.net .net visual-studio-2017 webdeploy