有没有办法让MSBuild项目确定32位或64位版本的MSBuild是否正在运行?

时间:2010-08-31 17:51:53

标签: msbuild 64-bit 32-bit 32bit-64bit

在找到my question关于试图加载32位扩展的64位版本MSBuild的答案之后,现在我需要确定64位还是32位版本的MSBuild正在运行,因此我可以加载正确版本的DLL。

我可以针对已知路径列表检查$(MSBuildBinPath)变量,但如果MSBuild从某个非标准位置运行,那么这将无效。这不是一个优雅的解决方案。

有没有办法可靠地确定当前运行的MSBuild(或托管MSBuild引擎的其他进程)是32位还是64位?

2 个答案:

答案 0 :(得分:1)

您是否考虑过编写返回当前进程 bitness 的自定义MSBuild任务?

有关示例,请参阅How to detect Windows 64-bit platform with .NET?

答案 1 :(得分:-1)

Find out the "Bit"ness of the current OS in MSBuild有一个相关问题。在那个问题中,Blindy有一个答案说明:


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

ProgramFiles=C:\Program Files
ProgramFiles(x86)=C:\Program Files (x86)

所以只需测试ProgramFiles(x86),如果它为空,请使用ProgramFiles