【发布时间】:2012-06-27 16:08:28
【问题描述】:
我想保留我的.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>
但是好像不行,是不是我做错了什么?
【问题讨论】:
-
.NET 元数据不依赖于位数。那个DLL是怎么回事?或者这只是将正确的 DLL 复制到构建文件夹中的问题?
-
您好,我写了关于使用该软件库的扩展软件。有的库可能不是.Net,反正我很想用正确的依赖,和我们使用的扩展设计保持一致。
标签: visual-studio 64-bit csproj