【问题标题】:Compiling Win32 and x64 csproj with different references使用不同的引用编译 Win32 和 x64 csproj
【发布时间】: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


【解决方案1】:

为什么不简单:

<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>

【讨论】:

  • 不工作怎么办?没有引入正确的组件或根本无法工作?
猜你喜欢
  • 1970-01-01
  • 2020-12-27
  • 1970-01-01
  • 2010-09-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-12-06
  • 2011-12-03
相关资源
最近更新 更多