【发布时间】:2012-11-30 09:35:58
【问题描述】:
在 Visual Studio 2010 中,在构建后脚本中,我需要将这些文件之一复制到“bin”目录: myLib32.dll 或 myLib64.dll
取决于我机器的架构。
有没有办法在脚本中检查我正在使用的架构?
谢谢。
【问题讨论】:
标签: visual-studio-2010 shell build-process build-automation
在 Visual Studio 2010 中,在构建后脚本中,我需要将这些文件之一复制到“bin”目录: myLib32.dll 或 myLib64.dll
取决于我机器的架构。
有没有办法在脚本中检查我正在使用的架构?
谢谢。
【问题讨论】:
标签: visual-studio-2010 shell build-process build-automation
您在构建后的命令行中有 $(PlatformName) 可用,但这是您构建它的平台,不一定是您所在机器的平台。或许您可以利用 Windows 中的 PROCESSOR_ARCHITECTURE 环境变量?
【讨论】:
如果你将这个添加到需要文件的项目的项目文件中,那么我认为它会做你需要的:
它检查是否存在 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>
【讨论】: