visual-studio - 无法加载文件或程序集 Visual Studio 2019(社区)

标签 visual-studio nuget-package .net-standard .net-framework-version servicestack-text

这将是有数百个答案的问题之一,所以请直接告诉我,因为我已经尝试了其中的大多数!

我一直在将一个非常大的项目分解为较小的组件,以便慢慢将其全部迁移到 .NET Core。

我的解决方案中的一些项目现在是 .NETstandard 类库,并且还有一些 .Net Framework (4.7.8) 项目。

今天我过得很好,突然我开始得到这个:

Could not load file or assembly 'ServiceStack.Text, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null' or one of its dependencies. The located assembly's manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040)

我的项目中安装的版本是(已 - 请继续阅读...)5.8.0.0

现在,我对这个错误并不陌生,我以前发现过它,它通常与项目引用文件、web.config 或 packages.config 引用与该文件版本不同的 .DLL 相关在 /bin 目录中。

所以我已经检查了所有(34)个项目文件夹并删除了每个项目中的servicestack.text.dll。

我已在每个项目中通过 NuGet 卸载它并重新安装。

我检查了每个项目的packages.config文件以及它们在.NETStandard项目、项目文件的位置,并确保没有引用ServiceStack.Text v 5.0.0.0

我已经多次重建、清理并重新启动解决方案、Visual Studio 和我的计算机!

然后我注意到了一些事情......

在我的 .Net Framework 项目中,在“引用”下,如果我单击 ServiceStack.Text 文件并查看“引用属性”,它会显示版本:5.0.0.0,但路径将其指向 5.8.0.0。

在 .NETStandard 项目中,它显示正确的版本。

然后我认为 5.9 可能无法在 Framework 项目中工作,所以我从每个项目中卸载它并在每个项目中安装 v 5.0.0.0。然后,这将无法构建,因为 Visual Studio 在 .NETStandard 项目中抛出错误,提示“检测到降级,请恢复更新的版本”

然后我将 5.9(现在是最新版本)安装到所有 .NETStandard 项目中,将 5.0.0.0 留在 .NET Framework 项目中。

现在它将构建,但当我尝试运行它时,FileNotFound 异常再次抛出。

所以我已经尝试过;

  • 一切都使用 ServiceStack.Text 5.9
  • 一切都使用 ServiceStack.Text 5.0
  • 使用 5.0 的 .NET Framework 项目和使用 5.9 的 .NETStandard (2.0) 项目
  • 多次卸载并重新安装
  • 删除所有obj目录,清理并重建
  • 检查所有项目和包文件

浪费了一天的大部分时间,所以转向SO...我确实希望有人能提供帮助!

最佳答案

对...再次回答我自己的问题...

经过很多的困惑之后,我发现发生了什么,这与 Visual Studio 构建或 .package 文件冲突无关

突然出现错误的原因是在我正在测试的东西中调用了 Dump(),而在前面的函数中又调用了 Dump() 引用了不同的.NET框架。虽然根据 Microsoft 的说法,这种(混合框架)有效,但 ServiceStack 有不同的版本,并导致版本冲突。

如果其他人遇到这种情况,这就是我发现的......

伪代码示例....NET 标准项目 (2.0) 中的函数

Function Blah() as Something
 … do something
    Log(TestResult.Dump())
    Return Something
End Function

然后一个 .NET Framework (4.7.8) 项目使用它并再次尝试转储结果:

Sub DoSomething()
   Dim Something = Blah()
   Write(Something.Dump())
End Sub

这两个框架需要不同版本的ServiceStack.Text,因此会在运行的项目中抛出令人困惑的FileNotFoundException,尽管我猜是正确的。

我肯定会再次遇到这个......!

关于visual-studio - 无法加载文件或程序集 Visual Studio 2019(社区),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62522308/

相关文章:

c# - .NET 库 1.6 中的 HttpClient 在 .NET Framework 或单元测试中使用时出错

c# - 如何从 C# 将彩色文本写入 Visual Studio 输出窗口?

.net - 在以下主要来源中找不到包

visual-studio - 当Nuget包是必需的输出时如何在同一解决方案中引用相关项目

powershell - NuGet:可以通过 Powershell 添加一行代码吗?

c# - 无法加载文件或程序集 'System.Net.Http,版本 = 4.1.1.1 .Net Standard

c# - 正确定位多个框架时如何使用条件符号(VS2017)

visual-studio - 尝试保存在 Crystal Reports 2013 中修改的 .rpt 文件时,Visual Studio 2013 崩溃

c++ - Visual Studio 中不同编译选项的不同源文件

html - Visual Studio/Chrome 不更新 HTML/Typescript