【发布时间】:2020-06-24 01:59:07
【问题描述】:
这将是有数百个答案的问题之一,所以请与我坦白,因为我已经尝试了其中的大部分!
我一直在将一个非常大的项目分解成更小的组件,以便慢慢将其全部迁移到 .NET Core。
我的解决方案中的一些项目现在是 .NET 标准类库,还有一些 .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 项目中,在 References 下,如果我单击 ServiceStack.Text 文件并查看 Reference Properties,它会显示版本:5.0.0.0,但路径将其指向 5.8.0.0。
在 .NETStandard 项目中,它显示正确的版本。
然后我想也许 5.9 不能在框架项目中工作,所以我从每个项目中卸载它并在每个项目中安装 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
- .NET Framework 项目使用 5.0 和 .NETStandard (2.0) 项目使用 5.9
- 多次卸载并重新安装
- 删除所有
obj目录,清理并重建 - 检查所有项目和包文件
浪费了一天的大部分时间,所以转向SO...我希望有人能提供帮助!
【问题讨论】:
标签: visual-studio nuget-package .net-standard .net-framework-version servicestack-text