2009-09-04 86 views
10

我正在構建一個加載32位COM DLL的C#應用​​程序。已編譯的應用程序在32位Windows上運行正常,但在64位Windows上運行條形碼,因爲它無法加載32位COM。有沒有辦法在VC#2008 Express Edition中設置32位構建目標?在Visual C#2008 Express Edition中設置32位x86構建目標?

另外,是否有辦法強制.NET應用程序編譯爲AnyCPU構建目標在64位Windows上以32位模式運行?

回答

12

你不能在VS Express中的UI中明確地將它設置爲32位,但顯然(我只有專業版本),它可以使用一些設置完成。 This論壇帖子詳細介紹瞭如何做到這一點。

您還可以做的是使用.Net Framework SDK附帶的CorFlags工具將編譯輸出設置爲32位運行。要使用CorFlags設置32位標誌,在命令行運行此:

CorFlags.exe /32BIT+ yourapp.exe 

這將在您的exe的報頭中設置一個標誌來通知.NET,它應該運行爲32位。

+1

非常感謝。鏈接頁面上的指示非常好。 - 允許我從GUI中選擇32位 – 2009-09-05 00:22:41

+0

CorFlags.exe也可以工作。謝謝! – 2009-09-07 23:30:19

26

對於後人,這裏是論壇的帖子阿德里安鏈接到:

在VC#Express中,這個屬性是 失蹤,但你仍然可以創建一個 x86的配置,如果你知道去哪裏 的樣子。

它看起來像一長串的步驟, ,但一旦你知道這些東西 是哪裏,這是更容易。只有 有VC#Express的人可能會發現 這個有用。一旦你瞭解了配置管理器 ,下一次將會更直觀地得到 。

  1. 在VC#Express 2005中,轉至工具 - >選項。
  2. 在選項對話框的左下角,選中 說的「顯示所有設置」框。
  3. 在左側的樹形視圖中,選擇「項目和解決方案」。
  4. 在右側的選項中,選中顯示「顯示高級 構建配置」的框。
  5. 單擊確定。
  6. 轉到生成 - >配置管理器...
  7. 在項目旁邊的平臺列中,單擊組合框並選擇 「」。
  8. 在「新平臺」設置中,選擇「x86」。
  9. 單擊確定。
  10. 單擊關閉。

那裏,現在你有一個x86 配置!易如反掌! :-)

我還推薦使用配置 管理器來刪除Any CPU 平臺。如果您曾經依賴32位的 原生DLL(甚至是間接的 依賴項),那麼您真的不想要這樣的 。

+1

請注意,在Visual Studio 2010中,在「Build」菜單出現之前,您需要單擊「工具>設置>專家設置」。另外,我不認爲2010年的步驟#1〜5是必要的。 – Fred 2011-07-13 23:54:36

+0

這正是我正在尋找的。謝謝 :) – 2013-05-09 16:07:54

相關問題