在post build脚本中,如何检查系统是64位还是32位

时间:2012-11-30 09:35:58

标签: visual-studio-2010 shell build-process build-automation

在Visual Studio 2010中,在后期构建脚本中,我需要将其中一个文件复制到“bin”目录: myLib32.dll或 myLib64.dll

取决于我机器的架构。

有没有办法检查脚本我正在使用哪种架构?

谢谢。

2 个答案:

答案 0 :(得分:1)

您在构建后的命令行中有$(PlatformName),但这是您为其构建的平台,而不一定是您所在计算机的平台。也许您可以在Windows中利用PROCESSOR_ARCHITECTURE环境变量?

答案 1 :(得分:1)

如果将此项添加到需要该文件的项目的项目文件中,那么我认为它将满足您的需求:

它检查是否存在syswow64版本的程序文件 - 这在32位版本的Windows上是空的

<PropertyGroup>
    <OSBitness Condition="'$(ProgramW6432)' == ''">32</OSBitness>
    <OSBitness Condition="'$(ProgramW6432)' != ''">64</OSBitness>
</PropertyGroup>

<ItemGroup>
    <myLib Include="myLib$(OSBitness).dll" />
</ItemGroup>

<Target Name="AfterBuild">
    <Copy SourceFiles="@(myLib)" DestinationFolder="$(TargetDir)" />
</Target>