12

我有一个包含多个项目的解决方案。其中一个项目包括用于单元测试的其他 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 的版本?

4

2 回答 2

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,我通过删除“选择”部分并简化为:

<Reference Include="Microsoft.VisualStudio.QualityTools.UnitTestFramework" />

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

于 2013-04-22T20:05:07.813 回答
0

In my case, in VS2017+Resharper, I deleted the reference to v 10.0.0.0 and re-added the reference to 10.1.0.0. Simply re-assigning the reference in the References browser did not do the trick, nor, weirdly, did reverting the changes to my Tests.csproj file in version control.

于 2019-09-05T10:02:21.430 回答