2012-02-10 95 views
15

我想讓我的應用程序爲x64構建(因爲我使用的是x64 dll)。 在配置管理器中,我將「主動解決方案平臺」設置爲「x64」 但是在項目列表中,平臺設置爲「x86」。 「目標平臺」在項目屬性也被設置爲「86」主動解決方案平臺VS項目平臺VS平臺目標

我完全糊塗了有三個地方設置目標平臺:

  • 配置管理:活動解決方案平臺
  • 配置管理:項目平臺
  • 項目屬性:目標平臺

比如我可以設置活動解決方案平臺到x64,解放軍項目tform到x86和項目目標到x64。這意味着什麼?

有人可以描述這些選項中的每一個究竟意味着什麼以及他們應該如何一起使用?如何編譯爲x64?

回答

18

Active Solution Platform允許您爲每個項目配置特定的配置組合。項目平臺允許您爲項目進行特定的配置設置。這兩個設置實際上並沒有說明解決方案和項目將與哪個平臺一起構建,它只是一個配置集,您可以更改其實際設置。

默認情況下,x64設置將項目設置爲專門針對x64進行編譯,但通過項目Platform Target屬性在項目屬性中可以更改(儘管將現有配置的目標設置更改爲除了它的名字以外)。

每個項目的平臺目標屬性是用於告知爲哪個平臺編譯項目程序集的設置。如果該項目對需要特定平臺工作的組件沒有任何依賴關係,則建議使用AnyCPU設置。

的AnyCPU設置將導致所述組件爲JIT:ED到

  • 86在32個平臺
  • 64在64位平臺

參見this question進一步的信息。

至於你的例子,將Active解決方案平臺設置爲x64,將Project platform設置爲x86,將Project target設置爲x64意味着在選擇解決方案配置時,項目組件將被構建爲僅JIT到64位,如果發生錯誤if您試圖在32位平臺上運行它。

如果您只依賴64位的資源(例如64位dll),則應該使用x64設置。相應地,如果您僅依賴於32位資源,則應使用x86設置。

配置管理器設置可用於更改項目的構建方式,例如,使用x86/x64的不同引用程序集或者甚至調試/發佈(如in this question)。配置集表示爲可在構建配置中使用的變量,以控制要包含的內容以及爲特定配置運行哪些構建任務。用記事本查看一個項目文件,你會看到它是如何使用的。

+4

當項目屬性(x64 | x86 |任何CPU)中看起來足以只有兩個開關時,會出現瘋狂的複雜性。 – SerG 2015-06-15 14:09:24