首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在MSBuild中查找当前操作系统的“位”性

在MSBuild中查找当前操作系统的“位”性
EN

Stack Overflow用户
提问于 2010-08-17 17:41:51
回答 4查看 1.6K关注 0票数 6

我有一个构建脚本,需要硬编码一个可执行文件的路径。这条道路是:

9.0\SmartDevices\SDK\SDKTools\cabwiz.exe

  • C:\Program \Microsoft

这是很好的工作,但现在我运行的64位操作系统(但我的同事和构建服务器仍然在32位)。

对于我来说,我需要这条路:

(x86)\Microsoft Visual 9.0\SmartDevices\SDK\SDKTools\cabwiz.exe

  • C:\Program

但其他人要走正常的道路。

下面是我是如何设置的:

代码语言:javascript
复制
<PropertyGroup>
    <CabWiz>"C:\Program Files\Microsoft Visual Studio 9.0\SmartDevices\SDK\SDKTools\cabwiz.exe"</CabWiz>
</PropertyGroup>

如果操作系统(不是当前的构建配置)是64位,那么有什么条件可以设置吗?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2010-12-02 23:33:25

有一个注册表项可以告诉您当前操作系统的位编辑性。下面是我在我的MSBuild文件中使用的属性:

代码语言:javascript
复制
<PropertyGroup>
        <MachineProcessorArchitecture>$(registry:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment@PROCESSOR_ARCHITECTURE)</MachineProcessorArchitecture>
        <Is32Bit>False</Is32Bit>
        <Is32Bit Condition="'$(MachineProcessorArchitecture)' == 'x86'">True</Is32Bit>
        <Is64Bit>False</Is64Bit>
        <Is64Bit Condition="'$(MachineProcessorArchitecture)' == 'AMD64'">True</Is64Bit>
</PropertyGroup>
票数 7
EN

Stack Overflow用户

发布于 2010-12-07 20:37:04

您正在使用bitness尝试并猜测正确的Program文件夹,但无法保证它位于C驱动器上,甚至不能称为"Program“。您最好使用$(MSBuildProgramFiles32)属性(在MSBuild 4.0中)。

票数 4
EN

Stack Overflow用户

发布于 2010-08-17 17:52:35

在64位操作系统上,定义了以下变量:

代码语言:javascript
复制
ProgramFiles=C:\Program Files
ProgramFiles(x86)=C:\Program Files (x86)

因此,只需测试ProgramFiles(x86),如果它是空的,使用ProgramFiles

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3505285

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档