添加CUI引用错误

时间:2013-07-22 09:35:52

标签: dll visual-studio-2012 reference coded-ui-tests

我有一个大问题。我需要使用VS 2012开发CUI测试。我需要使用" old" (版本10.0.0.0)CUI-dll' Microsoft.Visual Studio.TestTool.UITesting"。 问题是,VS 始终引用了11.0.0.0版本。 但.csprj文件确实有正确的条目,如:

<When Condition="'$(VisualStudioVersion)' == '10.0' And '$(IsCodedUITest)' == 'True'">
  <ItemGroup>
    <Reference Include="Microsoft.VisualStudio.QualityTools.CodedUITestFramework, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
      <Private>False</Private>
    </Reference>
    <Reference Include="Microsoft.VisualStudio.TestTools.UITest.Common, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
      <Private>False</Private>
    </Reference>
    <Reference Include="Microsoft.VisualStudio.TestTools.UITest.Extension, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
      <Private>False</Private>
    </Reference>
    <Reference Include="Microsoft.VisualStudio.TestTools.UITesting, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
      <Private>False</Private>
    </Reference>
  </ItemGroup>
</When>

删除11.0.0.0,清理解决方案并添加10.0.0.0版本无济于事.VS Studio将始终添加11.0.0.0版本...

希望有人可以提供帮助:)

1 个答案:

答案 0 :(得分:0)

首先,如果Visual Studio版本为10.0,则.csprj文件中的条件语句将仅使用版本10.0.0.0引用。

您可以完全删除该部分并强制引用10.0。这可能会也可能不会起作用(VS 2012尝试对引用“智能”并使用可用的最新版本)。

您还可以更改.csproj <When>条件并删除对VisualStudioVersion的任何引用。同样,这可能也可能不起作用。

最后,在app.config中,您可以强制进行版本覆盖:

  <runtime>
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
      <dependentAssembly>
        <assemblyIdentity name="System.Web.Helpers" publicKeyToken="31bf3856ad364e35" />
        <bindingRedirect oldVersion="1.0.0.0-2.0.0.0" newVersion="2.0.0.0" />
      </dependentAssembly>
    </assemblyBinding>
  </runtime>

当您尝试强制使用较旧的参考时,此方法也会失败。

无论您尝试哪种方法,都需要确保备份现有文件,以便在意外破坏项目时可以恢复它们。

您需要使用旧版本的原因是什么?通过转移到这些dll的较新版本,可能有更好的选择。