在找到關於嘗試加載32位擴展的64位版本的MSBuild的my question的答案後,現在有必要確定64位或32位版本的MSBuild是否正在運行,因此我可以加載正確版本的DLL。MSBuild項目是否有任何方法來確定32位或64位版本的MSBuild是否正在運行?
我可以根據已知路徑列表檢查$(MSBuildBinPath)變量,但如果MSBuild從某個非標準位置運行,則該變量不起作用。這不是一個優雅的解決方案。
是否有一些方法可靠地確定當前運行的MSBuild(或其他託管MSBuild引擎的進程)是32位還是64位?
您可以提供更多關於您正在嘗試執行的操作和/或調用MSBuild的詳細信息嗎? (這很重要,因爲程序調用基於對Microsoft.Build.x dll的引用) – 2010-08-31 19:04:29
我只是從命令行運行MSBuild。我需要知道是否加載擴展的32位或64位版本,因爲MSBuild總是試圖從32位擴展路徑加載它(有關該特定錯誤的更多詳細信息,請參閱引用的問題)。 – Mark 2010-08-31 19:20:13
在這種情況下,它只是您調用的任何版本。如果您從C:\ windows \ microsoft.net \ framework ....文件夾中調用MSBuild.exe,那麼您打到32位。如果它來自「Framework64」,則比它的64位版本。 – 2010-08-31 21:05:07