Visual Studio项目:在64位和32位平台(OS)上引用32位dll?

时间:2012-11-02 05:00:54

标签: msbuild

我有一个c#project dll引用一个文件,该文件“安装”在32位操作系统上的[Program Files]目录和64位操作系统上的[Program Files(x86)]目录下。我希望32位操作系统的开发人员能够使用与64位操作系统相同的csproj文件进行构建。这意味着我需要有条件地引用相应的根文件夹。我试图在元素中执行此操作,如下所示:

    <Reference Condition="$(ProgramFiles(x86)) == 'C:\Program Files (x86)'" Include="Microsoft.Maps.MapControl.WPF">
  <HintPath>..\..\..\Program Files (x86)\Bing Maps WPF Control\V1\Libraries\Microsoft.Maps.MapControl.WPF.dll</HintPath>
</Reference>
<Reference Condition="'$(ProgramFiles(x86))' == ''" Include="Microsoft.Maps.MapControl.WPF">
  <HintPath>..\..\..\Program Files\Bing Maps WPF Control\V1\Libraries\Microsoft.Maps.MapControl.WPF.dll</HintPath>
</Reference>

不幸的是,HintPath 总是解析为[Program Files],因此即使在运行64位Windows的主机上也看不到第一个条件。我已经从命令行(通过ECHO)验证了%ProgramFiles(x86)%确实在64位计算机上具有值[C:\ Program Files(x86)]。

我在这里缺少什么?为什么第一个条件不能在Win 64上评估为真?

提前致谢,  比尔

0 个答案:

没有答案