在找到my question关于试图加载32位扩展的64位版本MSBuild的答案之后,现在我需要确定64位还是32位版本的MSBuild正在运行,因此我可以加载正确版本的DLL。
我可以针对已知路径列表检查$(MSBuildBinPath)变量,但如果MSBuild从某个非标准位置运行,那么这将无效。这不是一个优雅的解决方案。
有没有办法可靠地确定当前运行的MSBuild(或托管MSBuild引擎的其他进程)是32位还是64位?
答案 0 :(得分:1)
您是否考虑过编写返回当前进程 bitness 的自定义MSBuild任务?
答案 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
。