我有一个构建脚本,需要硬编码一个可执行文件的路径。这条道路是:
9.0\SmartDevices\SDK\SDKTools\cabwiz.exe
这是很好的工作,但现在我运行的64位操作系统(但我的同事和构建服务器仍然在32位)。
对于我来说,我需要这条路:
(x86)\Microsoft Visual 9.0\SmartDevices\SDK\SDKTools\cabwiz.exe
但其他人要走正常的道路。
下面是我是如何设置的:
<PropertyGroup>
<CabWiz>"C:\Program Files\Microsoft Visual Studio 9.0\SmartDevices\SDK\SDKTools\cabwiz.exe"</CabWiz>
</PropertyGroup>如果操作系统(不是当前的构建配置)是64位,那么有什么条件可以设置吗?
发布于 2010-12-02 23:33:25
有一个注册表项可以告诉您当前操作系统的位编辑性。下面是我在我的MSBuild文件中使用的属性:
<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>发布于 2010-12-07 20:37:04
您正在使用bitness尝试并猜测正确的Program文件夹,但无法保证它位于C驱动器上,甚至不能称为"Program“。您最好使用$(MSBuildProgramFiles32)属性(在MSBuild 4.0中)。
发布于 2010-08-17 17:52:35
在64位操作系统上,定义了以下变量:
ProgramFiles=C:\Program Files
ProgramFiles(x86)=C:\Program Files (x86)因此,只需测试ProgramFiles(x86),如果它是空的,使用ProgramFiles。
https://stackoverflow.com/questions/3505285
复制相似问题