0

.csprojプロジェクトを維持し、 2つのバージョンのdllをコンパイルしたいと思います。1つはWin32プラットフォーム用で、もう1つはプラットフォーム用x64です。

プラットフォームごとに異なる参照を使用する必要があるため、問題が発生しました

たとえば、ExternalReference.dllの場合

 <Reference Include="ExternalReference">
   <SpecificVersion>False</SpecificVersion>
   <HintPath>c:\win32_repository\ExternalReference.dll</HintPath>
 </Reference>

とのためにx64

 <Reference Include="ExternalReference">
   <SpecificVersion>False</SpecificVersion>
   <HintPath>c:\x64_repository\ExternalReference.dll</HintPath>
 </Reference>

変数について読みましたが、ファイル内$(ReferencePath)でのみ機能するようで.csproj.user、これらのファイルはバージョン管理上に存在しないため、これは解決策ではありません。

何かアイデアはありますか?.csproj次のようにカスタム変数を定義できますか?

<PropertyGroup Condition=" '$(Platform)' == 'Win32' >
   <CustomReferencePath>c:\win32_repository</CustomReferencePath>
</PropertyGroup>
<PropertyGroup Condition=" '$(Platform)' == 'x64' >
   <CustomReferencePath>c:\x64_repository</CustomReferencePath>
</PropertyGroup>

次に、次のような参照を追加します。

<Reference Include="ExternalReference">
   <SpecificVersion>False</SpecificVersion>
   <HintPath>$(CustomReferencePath)\ExternalReference.dll</HintPath>
</Reference>

しかし、それはうまくいかないようです、私は何か間違ったことをしていますか?

4

1 に答える 1

0

なぜ単純ではないのですか:

<Reference Include="ExternalReference" Condition=" '$(Platform)' == 'Win32'>
  <SpecificVersion>False</SpecificVersion>
  <HintPath>c:\win32_repository\ExternalReference.dll</HintPath>
</Reference>
<Reference Include="ExternalReference" Condition=" '$(Platform)' == 'x64'>
  <SpecificVersion>False</SpecificVersion>
  <HintPath>c:\x64_repository\ExternalReference.dll</HintPath>
</Reference>
于 2012-06-27T16:22:19.053 に答える