0

我想保留我的.csproj项目并编译两个版本的 dll,一个用于Win32平台,另一个用于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 回答