我想保留我的.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>
但它似乎不起作用,我做错了吗?
答案 0 :(得分: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>