2010-01-27 62 views
24

我正在使用Visual Studio 2005處理一些C#項目,並試圖將平臺目標從x86更改爲任何CPU。我已經瀏覽了我所知道的所有依賴關係,並確保它們也是使用corflags工具爲任何CPU構建的。將Visual Studio C#項目從x86更改爲任何CPU

當我在Visual Studio 2005中更改平臺目標時,它似乎保存了更改,但是當我構建項目時仍然使用x86。下一次我打開該項目時,平臺目標已被重置爲x86。

這隻發生在解決方案中的幾個項目,這是否意味着還有其他32位依賴關係?

我可以在命令行上用/platform:anycpu手動運行C#編譯器,但是我沒有收到錯誤,但我不確定這是否正確,我希望能夠在視覺工作室。

我能做些什麼來解決這個問題?

+2

是否確定您在所有配置中更改了平臺目標(即在調試和發佈配置中)? – 2010-01-27 14:50:11

+2

我不認爲VS關心依賴關係。我已經能夠構建具有32位依賴關係的AnyCPU項目 - 當DLL嘗試加載時會立即(適當地)崩潰。去與迪奧的建議。 – 2010-01-27 15:10:46

+0

我確實在所有配置中更改了平臺目標,並且仍然使用/ platform:x86運行編譯器,並且不會將更改保存在項目中。 – WildCrustacean 2010-01-27 15:11:34

回答

21

確保你已經改變了兩個配置平臺平臺目標Any CPU。如果一切都失敗,您可以打開.csproj並手動更改參考。右鍵單擊該項目,轉到卸載項目。然後點擊右鍵並轉到Edit MyProject.csproj。該項目的特性仍然包括默認平臺爲86:

<PropertyGroup> 
    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> 
    <Platform Condition=" '$(Platform)' == '' ">x86</Platform> 

也可以考慮在解決方案仍然具有Configuration Manager中的86配置的情況。我發現一些複雜的解決方案包含多個具有不同配置的項目,我不得不花費大量時間在配置管理器中使一切順利。

+0

我已經更改了配置平臺和平臺目標,它仍然不會保存更改。我能夠編輯.csproj文件並以這種方式進行,所以我認爲這是我在這一點上尋找的。它是否實際運行是另一回事。我仍然認爲這可能與依賴關係有關,而我認爲這些依賴關係不能被其他平臺作爲目標,但很難說。 – WildCrustacean 2010-01-27 15:33:13

+0

遇到了這個試圖解決同樣的問題......我最終發現,即使項目設置爲Debug/Any CPU的解決方案配置中的調試/任意CPU調試,項目的屬性頁'build '標籤,讓你選擇一個目標平臺'調試/任何CPU'。在我的例子中,'Debug/Any CPU'明確地針對x86,所以當我爲Debug/Any CPU編譯項目時,生成的DLL被顯式編譯爲x86 ...在x64環境中加載時導致了無效格式錯誤。還有很多'wtf?'要有。 – 2011-11-30 22:08:20

+1

爲了澄清,我不是在談論配置管理器設置......有兩個地方可能會錯誤地指定配置。解決方案管理器允許您將項目設置爲'Release/x64'以進行'調試/任意CPU'配置...項目屬性'生成選項卡可讓您說'Release/x64'以x86平臺爲目標。困惑了嗎? – 2011-11-30 22:11:36

-6

您將無法爲託管項目執行此操作,我認爲該設置與託管項目無關,因爲它們應該真正在任何cpu上運行。

+0

「託管項目」是什麼意思?根據我的理解,我應該可以通過更改構建屬性中的平臺目標設置來將我的程序集構建爲x86,x64或anycpu。 – WildCrustacean 2010-01-27 15:13:12

+6

-1,如果它們使用Unmanaged DLL,則該設置與託管項目相關。 – user7116 2010-01-27 15:16:14

+0

我沒有想到x86或x64我認爲只有純託管代碼 – gyurisc 2010-01-27 17:19:37

相關問題