我意识到有人问过这个问题,但我已经尝试了所有我能找到的建议解决方案。
我有一个负载测试项目(具有.loadtest
继承自的文件和类Microsoft.VisualStudio.TestTools.WebTesting.WebTest
)。它必须针对 .Net Framework(版本 4.6.1)而不是 .Net Core。
它引用了一个以 .Net Standard 2.0 为目标的项目,并且加载项目和 .Net Standard 项目都System.ComponentModel.Annotations
添加了(4.5.0 版)Nuget 包。
当我尝试运行负载测试本身时,我收到以下异常:
System.IO.FileNotFoundException
Message=Could not load file or assembly 'System.ComponentModel.Annotations, Version=4.2.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' or one of its dependencies. The system cannot find the file specified.
我尝试将 app.config 文件添加到具有绑定重定向的负载测试项目中,但它对异常没有任何影响。
我不能下移到 NuGet 包的 4.4.1 版,因为其他地方的其他项目依赖它是 4.5 版。
我读过这个包中的版本控制存在问题。事实上,当我检查构建的 .Net Standard 项目 dll 的依赖项时,它似乎不是针对指定的 4.5.0,而是版本 4.2.0.0。
现在,我可以通过删除 NuGet 包引用并在 Packages 文件夹中添加对 dll 的手动引用,将项目强制为正确的版本(似乎是 4.2.1.0),但随后链中的另一个项目拒绝接受我给hintPath
它,并默认为不同的位置和版本:
所以我不能强制我需要的所有项目都使用我想要的 dll 的实际版本和位置。
只是想知道是否有人可以提出任何可能对这里有所帮助的行动方案,因为我对如何强制整个事情使用正确的版本有点茫然。通过绑定重定向,或者让所有项目接受我给他们的 dll 的路径。