我有一个包含多个项目的解决方案。其中一个项目包括用于单元测试的附加Assert方法。它引用了Microsoft.VisualStudio.QualityTools.UnitTestFramework 10.1.0.0
。它还包括其他测试项目,它们引用Microsoft的UnitTestFramework和我的项目以及其他断言方法。
每当我重新启动visual studio并编译时,我都会收到以下警告:
发现同一依赖的不同版本之间存在冲突 组装
我已经尝试将对UnitTestFramework的所有引用更改为10.1.0.0,但在重新启动Visual Studio时似乎再次将它们设置为10.0.0.0。我甚至尝试在Visual Studio之外更改项目文件,但在Visual Studio中打开项目后,引用再次显示解决方案资源管理器中的旧版本。关闭Visual Studio而不进行任何文件修改时,它会询问是否保存对项目文件的更改。
如何阻止Visual Studio在我的项目中更改引用的UnitTestFramework的版本?
答案 0 :(得分:4)
有同样的问题。我们的一位开发人员正在重组组件,他的VS出于某种未知原因改变了这一点:
<Choose>
<When Condition="('$(VisualStudioVersion)' == '10.0' or '$(VisualStudioVersion)' == '') and '$(TargetFrameworkVersion)' == 'v3.5'">
<ItemGroup>
<Reference Include="Microsoft.VisualStudio.QualityTools.UnitTestFramework, Version=10.1.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" />
</ItemGroup>
</When>
<Otherwise>
<ItemGroup>
<Reference Include="Microsoft.VisualStudio.QualityTools.UnitTestFramework" />
</ItemGroup>
</Otherwise>
</Choose>
进入这个:
<Reference Include="Microsoft.VisualStudio.QualityTools.UnitTestFramework, Version=10.1.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" />
<Choose>
<When Condition="('$(VisualStudioVersion)' == '10.0' or '$(VisualStudioVersion)' == '') and '$(TargetFrameworkVersion)' == 'v3.5'">
<ItemGroup>
<Reference Include="Microsoft.VisualStudio.QualityTools.UnitTestFramework, Version=10.1.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" />
</ItemGroup>
</When>
<Otherwise />
</Choose>
第一行不断改变其他人的系统(与你的症状相同)。
由于我们还没有计划支持3.5,我通过删除&#34;选择&#34;部分并简化为:
<Reference Include="Microsoft.VisualStudio.QualityTools.UnitTestFramework" />
(从参考中删除特定版本)
答案 1 :(得分:0)
就我而言,在VS2017 + Resharper中,我删除了对v 10.0.0.0的引用,并重新添加了对10.1.0.0的引用。只是在“参考”浏览器中重新分配参考并不能解决问题,也很奇怪,也没有将更改恢复到版本控制中的Tests.csproj文件。