2

在找到关于 64 位版本的 MSBuild 尝试加载 32 位扩展的问题的答案后,我现在有必要确定是 64 位版本还是 32 位版本的 MSBuild 正在运行,以便我可以加载正确版本的 DLL。

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

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

4

2 回答 2

1

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

请参阅如何使用 .NET 检测 Windows 64 位平台?例如。

于 2010-09-27T12:37:21.763 回答
-1

Find the "Bit"ness of the current OS in MSBuild 中有一个相关问题。在那个问题中,Blindy的回答是:


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

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

所以只需测试ProgramFiles(x86),如果它是空的,使用ProgramFiles.

于 2010-09-01T03:47:53.093 回答