首页 > 解决方案 > Visual Studio:手动更新项目中的引用后,引用会回到以前的版本

问题描述

我对我的解决方案中的一个项目目前正在发生的事情摸不着头脑:

我在同一个解决方案中有两个项目(InfrastructureSelenium和)。TestSelenium两个项目都需要引用 dllMicrosoft.VisualStudio.QualityTools.UnitTestFramework.dll

ProjectInfrastructureSelenium的 dll 具有以下属性:

(Name): Microsoft.VisualStudio.QualityTools.UnitTestFramework
Alias: global
Copy Local: True
Description: Microsoft.VisualStudio.QualityTools.UnitTestFramework.dll
Embed Interop Types: False
File Type: Assembly
Identity: Microsoft.VisualStudio.QualityTools.UnitTestFramework
Path: C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE\ReferenceAssemblies\v2.0\Microsoft.VisualStudio.QualityTools.UnitTestFramework.dll
Resolved: True
Runtime Version: v2.0.50727
Specific Version: True
Strong Name: True
Version: 10.1.0.0

TestSelenium但是,Project正在使用:

(Name): Microsoft.VisualStudio.QualityTools.UnitTestFramework
Alias: global
Copy Local: False
Description: Microsoft.VisualStudio.QualityTools.UnitTestFramework.dll
Embed Interop Types: False
File Type: Assembly
Identity: Microsoft.VisualStudio.QualityTools.UnitTestFramework
Path: C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE\PublicAssemblies\Microsoft.VisualStudio.QualityTools.UnitTestFramework.dll
Resolved: True
Runtime Version: v2.0.50727
Specific Version: True
Strong Name: True
Version: 10.0.0.0

请注意PathVersion不同,这会触发以下错误:

Assembly 'InfrastructureSelenium' with identity 'InfrastructureSelenium, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null' uses 'Microsoft.VisualStudio.QualityTools.UnitTestFramework, Version=10.1.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' which has higher version than referenced assembly 'Microsoft.VisualStudio.QualityTools.UnitTestFramework' with identity 'Microsoft.VisualStudio.QualityTools.UnitTestFramework, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'

所以我去TestSelenium,删除对Microsoft.VisualStudio.QualityTools.UnitTestFramework同一个 dll 的引用并添加一个新的引用,但版本正确(10.1.0.0)。这解决了问题,让我正确编译和运行解决方案,但是如果我保存所有内容并检查更改,下次我打开 Visual Studio 时会出现同样的问题,我必须再次重复。

我做错了什么,为什么Microsoft.VisualStudio.QualityTools.UnitTestFramework.dll每次打开 Visual Studio 时都会被重置?

谢谢你的时间

标签: c#visual-studiodll

解决方案


我最终通过删除所有对 NuGet 包的引用Microsoft.VisualStudio.QualityTools.UnitTestFramework并改用 NuGet 包MSTest.TestFramework v1.3.2来修复它。

但是,我仍然不确定是什么导致 dll 重置为版本 10.0.0.0


推荐阅读