2011-01-26 30 views
10

語境:VS2010大會參考失敗

我有我的解決方案,3個項目(C#,.NET 4.0):

  • Abc.Business(DLL項目)
  • Abc.Test (測試項目)
  • Abc.Ui(WPF項目)

  • Abc.Bu siness是我的商業邏輯。它包含實體,管理,服務等

  • Abc.TestAbc.Business項目參考,單元測試。他們工作得很好。
  • Abc.Ui有一個項目引用Abc.Business

Abc.Ui不能解決所有的using Abc.Business; 錯誤日誌顯示:

錯誤類型或命名空間名稱'Business'不存在於命名空間'Abc'中(您是否缺少程序集引用?)c:\ Abc \ Abc.Ui \ ViewModels \ ClientViewModel.cs

此外,當我手動輸入我的文件頂部的using時,Intelli-sense會顯示「Abc.Business.etc ..」。所以Intelli-sense在參考文獻中行走但是不會構建。

任何想法?

+0

你有沒有清理你的解決方案,然後嘗試構建?通常這有幫助。 – Bernard

+0

仔細查看解決方案資源管理器。那裏的裁判是什麼,它顯示了什麼圖標? –

+0

@Bernard:有很多次.. –

回答

15

非常感謝GrhmHenk Holterman誰指出架構解決方案。事實上,這不是問題,但它使我找到它。問題是框​​架目標。默認情況下,Ui項目的目標是使用「客戶端」配置文件的.NET 4.0 Framework。此配置文件不能引用非客戶端配置文件。我發現在不夠用的調試輸出窗口中。 (我習慣在錯誤列表,而不是看)

這裏顯示什麼錯誤:

C:\ WINDOWS \ Microsoft.NET \框架\ v4.0.30319 \ Microsoft.Common.targets( 1360,9):警告MSB3253:引用的程序集「C:\ Abc \ Abc.Business \ bin \ Debug \ Abc.Business.dll」無法解析,因爲它依賴於「System.Web,Version = 4.0」。 0.0,Culture = neutral,PublicKeyToken = b03f5f7f11d50a3a「,它不在當前的目標框架」.NETFramework,Version = v4.0,Profile = Client「。請刪除不在目標框架中的組件的引用,或考慮重新定位您的項目。

我將配置文件更改爲普通(無)和BOOM一切正常。 Here's the MSDN page關於它

再次感謝您的時間傢伙。

+1

我最近有這個,答案稍有不同。今天出現了同樣的錯誤,這爲我解決了這個問題。謝謝:) – dooburt

+1

謝謝你。花了2個小時尋找解決方案!差點瀕臨絕望 – matcheek

+0

真的很高興幫助! –

0

您是否已將Abc.Business項目的參考添加到Abc.Ui項目中?您可以通過右鍵單擊Abc.Ui中的References,選擇Add Reference,然後轉到Projects選項卡。並選擇Abc.Business。

+0

是的Ui有一個商業項目參考。感謝提示。 –

3

如果兩者之間存在不兼容性,我會預料會出現問題。

一些提示/想法:

  • 取出參考,並再次,添加它作爲一個參考項目
  • 重建解決方案,並檢查錯誤消息
  • 檢查平臺(版本)。也許UI是Client-platform,Biz層使用完整的平臺。
4

當我們在配置管理器中出現不一致時,我遇到了類似這樣的問題。 (通過Build菜單訪問)。

我們有一些項目構建x86變體,一些構建x64變體,配置管理器爲「任意CPU」和「混合處理器」提供「解決方案平臺」。

我相信我們將我們的「業務」構建爲x86庫,我們的「UI」作爲x64(反之亦然),這意味着它無法找到程序集(對於正確的體系結構)並給出錯誤你看到了,但是intelisense仍然在看它的源頭。

我建議你看看你的項目平臺和解決方案平臺,並整理任何古怪的東西。

+0

你指出一箇中間點。在我的配置管理器中,除了Abc.Ui之外,每個項目都在「任何CPU」上。我正在嘗試不同的配置.. –