2010-07-27 65 views
0

當我爲其中一個模塊構建程序集時,我遇到了一個奇怪的問題。在VS2008中構建版本而不是在VS2008中調試時,組件變爲32位

我在64位上運行時遇到了錯誤,我追溯到與32位特定的程序集有關。我們的模塊(或應該)都是建立在不可知論的位置。

在程序集上運行CorFlags.exe顯示以下內容。


版本:V2.0.50727

CLR部首:2.5

PE:PE32

CorFlags:11

ILONLY:1

32BIT:1 < - - 注意32bit標誌設置爲1!

簽名:1


不過,我就回重建模塊只是碰巧建立在調試模式。 (注:這是故事的簡化版本,錯過了解決方案測試的時間,谷歌搜索,並與龍一拼:d)

這一次,當我檢查CorFlags.exe它給了以下內容:


版本:V2.0.50727

CLR部首:2.5

PE:PE32

CorFlags:9

ILONLY:1

32BIT:0

簽名:1


所以現在我很困惑,已經四分五裂的視覺工作室建立CONFIGS並發現他們是完全一樣的(即所有設置爲「任何CPU」)我現在正在爲如何解決這個問題而蒙受損失。

什麼會導致此行爲?

回答

1

Build + Configuration Manager,在左上角的組合中選擇Release。關。現在使用Project + Properties,Build選項卡並驗證Platform Target。

+0

是的,我發現它位於 選項>>項目屬性 - >編譯 - >高級編譯選項。 >> Target CPU = AnyCPU cheers tho :) – Jambobond 2010-07-27 15:08:50

0

我不知道是什麼導致這種行爲,但這裏是一個可能的解決方法:

你試過運行CorFlags與/ 32BIT-標誌從組件清除32BIT標誌?如果它可以工作,你可以添加一個postbuild步驟來切割該標誌。

+0

雖然這可能會解決高水平的問題,但我確信必須有問題的根本原因,並且我真的很想在系統部署之前發現它是什麼。感謝您的建議,雖然:) – Jambobond 2010-07-27 11:32:42