Visual Studio继续使用UnitTestFramework 10.0.0.0

Ste*_*ris 11 unit-testing visual-studio dll-reference

我已经有了几个项目的解决方案.其中一个项目包括用于单元测试的附加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的版本?

Mik*_*sdf 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>
Run Code Online (Sandbox Code Playgroud)

进入这个:

<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>
Run Code Online (Sandbox Code Playgroud)

第一行在其他人的系统上不断发生变化(与您的症状相同)。

由于我们没有计划支持 3.5,因此我通过删除“选择”部分并简化为来修复它:

<Reference Include="Microsoft.VisualStudio.QualityTools.UnitTestFramework" />
Run Code Online (Sandbox Code Playgroud)

(从参考中完全删除特定版本)