在找到关于64位版本的MSBuild尝试加载32位扩展的我的问题的答案后,现在有必要确定运行的是64位还是32位版本的MSBuild,以便我可以加载正确版本的DLL。
我可以将$(MSBuildBinPath)变量与已知路径列表进行比较,但如果MSBuild从某些非标准位置运行,则无法正常工作。这不是一个优雅的解决方案。
是否有一种可靠的方法来确定当前运行的MSBuild(或其他托管MSBuild引擎的进程)是32位还是64位?
在找到关于64位版本的MSBuild尝试加载32位扩展的我的问题的答案后,现在有必要确定运行的是64位还是32位版本的MSBuild,以便我可以加载正确版本的DLL。
我可以将$(MSBuildBinPath)变量与已知路径列表进行比较,但如果MSBuild从某些非标准位置运行,则无法正常工作。这不是一个优雅的解决方案。
是否有一种可靠的方法来确定当前运行的MSBuild(或其他托管MSBuild引擎的进程)是32位还是64位?
有一个相关问题在在MSBuild中查找当前操作系统的"位数"。在那个问题中,Blindy给出了一个答案:
ProgramFiles=C:\Program Files
ProgramFiles(x86)=C:\Program Files (x86)
所以只需测试 ProgramFiles(x86)
是否为空,如果为空,则使用 ProgramFiles
。