2009-07-16 148 views
7

我有一個奇怪的問題,並希望有人可以幫助我。Visual Studio 2008項目屬性構建配置缺失選項

我有一個解決方案與13個獨立的C#項目。我正在使用Vista x64進行開發,並且我想構建這些項目以定位x86平臺。這通常很容易。我可以轉到解決方案屬性 - >配置屬性並將平臺更改爲x86。這裏奇怪的部分是,我的3個項目拒絕讓我選擇x86。

所以,我想我會分別去這三個項目中的每一個,並在項目屬性 - >構建和更改平臺中進行更改。這些項目並沒有配置和平臺下拉菜單。我搜索了一下,在工具 - >選項 - >項目和解決方案 - >顯示高級版本配置中找到了一個設置。選擇此項後,當進入項目屬性以查找違規項目時,我現在可以看到兩個下拉列表,但該平臺只允許我選擇「活動」(任何CPU)。

我也無法將解決方案屬性中的平臺更改爲x86這些項目。

任何想法?

回答

10

聽起來像構建配置已變得棘手。很可能是添加了三個項目後,將溶液配置爲具有支持x86(新項目只支持AnyCPU,即使該解決方案支持更多的平臺。)

  • 轉到建設 - >配置管理器...
  • 變化'Active Solution Platform'to x86(如果有的話,如果只有AnyCPU,那麼就使用它)。
  • 對於每個違規項目,在Platform列中選擇'New'
  • 選擇New Platform as'x86' ,從任何CPU複製設置,並確保複選框不勾選。
  • 點擊確定。

獲得解決方案和單個項目之間的配置/平臺一致性可能非常棘手。配置管理器可能會意外行爲 - 特別是使用自定義解決方案配置時。我建議先玩一個測試解決方案。

0

我會比較csproj文件的文本內容,看看是否有任何設置已經出錯或意外。同時檢查sln的內容,也許配置有些奇怪。

問候,

Sebastiaan

+0

感謝您的回覆。我確實花了一些時間來做這件事,並且創建了一個新項目並將源文件從一個拷貝到新項目中。新項目按照應有的原則工作。雖然改變其中一個大型項目的前景令人望而生畏,但至少可以說... – tardomatic 2009-07-16 14:50:33

2

我還開發了在x64和部署的x86。但是,我不會從默認值(任何CPU)更改平臺,它對我來說工作得很好。你是否有任何代碼(例如Win interop)在不同平臺上工作不同?查看this post by Hanselman瞭解32/64位.NET定位的詳細信息。

+0

嗨,謝謝你的迴應。不幸的是,我確實需要與32位interop交互,因此需要編譯爲x86。我認爲您提供的鏈接可能存在問題。我有興趣閱讀它。 – tardomatic 2009-07-16 14:49:04

+0

修復了鏈接。不要忘記upvote :) – zvolkov 2009-07-16 15:57:58

+1

優秀的閱讀,感謝您的鏈接。書籤。 – tardomatic 2009-07-16 18:16:26

-2

對於Visual Studio 2010.要運行Access 12.0:在解決方案資源管理器中單擊項目名稱,選擇屬性 - 生成* - 目標平臺 - x86。

相關問題