Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2012/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Dll 添加CUI引用错误_Dll_Visual Studio 2012_Reference_Coded Ui Tests - Fatal编程技术网

Dll 添加CUI引用错误

Dll 添加CUI引用错误,dll,visual-studio-2012,reference,coded-ui-tests,Dll,Visual Studio 2012,Reference,Coded Ui Tests,我有个大问题。我需要用VS 2012开发CUI测试。我需要使用“旧”(版本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'"> <ItemGr

我有个大问题。我需要用VS 2012开发CUI测试。我需要使用“旧”(版本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版本


希望有人能提供帮助:)

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

您可以完全删除该部分,并强制引用10.0。这可能有效,也可能无效(VS 2012试图在引用方面“聪明”,并使用可用的最新版本)

您还可以更改.csproj
条件并删除对
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的较新版本,您可能会有更好的选择