2012-10-22 77 views
2

我最近有VS2010,C#和.Net 4的問題,我無法使用從我引用的程序集命名空間(稱爲AssemblyA)。它類似於問題here命名空間無法識別任何Cpu

我能夠通過將AssemblyA設置爲x86平臺而不是任何Cpu來解決問題。

我的問題是爲什麼將平臺目標更改爲x86允許我在我的項目中使用AssemblyA的名稱空間?

我想說明的是,我能夠在不更改平臺目標的情況下在其他項目中引用AssemblyA。我所有的參考文獻都是項目參考。

編輯:顯然我誤會了。即使更改爲x86,它也無法正常工作。任何想法可能導致這種情況?

更新:我所有的項目都使用完整的.NET 4配置文件。

編輯:

做一些測試後,我有一些更多的信息。當我在Debug/Release構建之間切換時(無論我切換的順序如何)並在AssemblyA上執行清理操作,那麼我可以使用命名空間沒有問題。只要重建AssemblyA,我就不能再使用命名空間。這似乎不關乎我的目標平臺。

+1

這兩個項目都使用「常規」配置文件還是其中一個客戶端配置文件? – Daniel

+0

這種錯誤最常見的錯誤是不同的配置文件(Client vs. Full),因爲它已經被指出。你的項目名稱空間和庫中的類是什麼?我記得之前在某些情況下遇到了問題,但我無法記得確切的細節。 –

回答

0

您需要確保您引用程序集的項目設置爲「.NET 4完整配置文件」而不是默認的「客戶端配置文件」。如果您的DLL使用完整配置文件中的類並且您的程序集設置爲客戶端配置文件,則它無法引用該DLL。

所以只需右鍵點擊您的項目,然後點擊Properties。然後在Application選項卡下,查看Target Framework。確保它沒有設置爲.NET Framework 4 Client Profile

+0

我更新了我的問題。我的所有項目都使用完整的配置文件,而不是客戶端。 – MisterXero

0

我不確定這裏的交易是什麼,但要解決方法我剛創建了一個全新的項目並複製了代碼。新項目的設置與給我提出問題的項目完全相同。但是我可以在沒有任何問題的情況下參考我的其他項目中的新項目。