Dot-Net

如何強制 MSBuild 編譯為 32 位模式?

  • July 2, 2009

我正在使用 MSBuild(通過NAnt)來編譯一堆VB.NET程序集。因為這些程序集依賴於 COM 互操作,所以我需要保證它們在 64 位作業系統上以 32 位模式執行。我可以通過更改 Visual Studio 中的項目來將可執行程序集編譯為 32 位,但我真的希望能夠強制在建構伺服器上將所有執行檔編譯為 32 位模式。

我已經嘗試了一些 MSBuild 的命令行參數,但沒有成功:

  • /p:平台=win32
  • /p:平台=x86
  • /p:處理器架構=x86

我究竟做錯了什麼?在編譯 VB 項目時,是否有一些對 MSBuild 使用的屬性的參考?

如果程序集本身總是 32 位,為什麼不將設置添加到 .vbproj 文件?這將使 MSBuild 脫離等式。

只需將以下行添加到 .vbproj 文件中的初始 PropertyGroup

<PlatformTarget>x86</PlatformTarget>

根據MSDN,您正在做正確的事情。看起來像/p:Platform=x86,但實際上,也許是/p:PlatformTarget=x86

嘗試使用該參數直接呼叫 MSBuild(確保您的 NAnt 文件沒有問題。查看正確建構配置(調試 /發布)的建構輸出。

引用自:https://stackoverflow.com/questions/1074654