1
我有一個C#項目,在解決方案中,平臺目標是AnyCPU。雖然我有一個構建程序,每天都會構建此解決方案,並使用msbuild.exe。該命令喜歡:使用msbuild.exe構建C#項目不會覆蓋項目目標平臺配置?
的MSBuild d:\ my.sln/P:配置=釋放/ P:平臺= 86/T:重建....
這裏我指定的編譯平臺應該是x86。
我我認爲,msbuild.exe應該覆蓋解決方案配置和輸出應該是x86 EXE,而不是anyCPU類型。
我嘗試這些代碼到這個項目:
PortableExecutableKinds peKind;
ImageFileMachine machine;
Assembly.GetExecutingAssembly().ManifestModule.GetPEKind(out peKind, out machine);
測試結果表明,該exe值爲anycpu模式(ILONLY),而不是我們所期望的。 在這樣的情況下,我怎麼能知道我的程序編譯器由x86或x64編碼?
謝謝。 李
謝謝SchlaWiener。我只是更新我的帖子。我無法修改構建腳本,因爲那是在我的領土之外。所以我的問題縮小到如何通過代碼獲取x86/x64信息?經過測試,如果我使用/ p:Platform = x86或/ p:Platform = x64進行編譯,dll實際上是不同的(我嘗試在x64編譯的程序中動態加載x86 .net dll,發生錯誤),無論peKind = ILOnly 。 – DingLi
檢查對於x86/x64進程應該不同的'IntPtr.Size'。 –