0

私には大きな問題があります。VS 2012 で CUI テストを開発する必要があります。「Microsoft.Visual Studio.TestTool.UITesting」のような「古い」(バージョン 10.0.0.0) CUI-dll を使用する必要があります。問題は、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 バージョンを追加します...

誰かが助けてくれることを願っています:)

4

1 に答える 1

0

まず、.csprj ファイルの条件文は、Visual Studio のバージョンが 10.0 の場合、バージョン 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 の新しいバージョンに移行すると、より良いオプションが得られる場合があります。

于 2013-07-23T12:05:40.143 に答える