2011-08-31 74 views
13

我正在使用MagicLibrary作爲一些組件。我知道它是用Visual Studio 2003編寫的,並在Visual C#Express 2010中重新編譯它。它編譯得很好,我可以在文件夾中看到該庫。調試/構建時引用消失(C#,VB.NET,VS2010)

然後,我在Visual C#Express 2010中創建了一個新項目,並將組件MagicalLocalLibrary.dll添加到工具箱中。他們看起來很好,沒有錯誤。我把工具箱的控制權交給了我的表格,看起來很好。然後我調試(查看是否會出現任何錯誤),我看到的是參考MagicalLibrary消失了,我得到了錯誤:

The type or namespace name 'Crownwood' could not be found (are you missing a using directive or an assembly reference?) 

的事情是,參考下在解決方案資源管理器中,但我可以參考表明細不會導入它與using或在代碼中使用它(根本不在InstelliSense中列出),但如果我進入對象瀏覽器並選擇「我的解決方案」,則不會列出它。我可以單擊解決方案資源管理器中的引用,只需將「複製本地」屬性更改爲True或False,然後它將顯示在對象瀏覽器中,但每當我再次調試項目時,它都會消失。

任何想法爲什麼這樣做?提前致謝。

回答

22

檢查您使用.NET框架4,而不是客戶端配置版本

您發現該設置,當你在你的項目上單擊右鍵,選擇屬性。在應用程序中有一個目標框架的設置。如果您選擇了.Net 4框架客戶端配置文件,那麼您描述的這種行爲可能發生

+0

謝謝Bassetassen--我總是忘記了!哦,你知道當你創建一個新項目時是否可以設置一個默認框架? – fnky

+0

@Humanoidism您的歡迎,自己多次做同樣的事情。在這個[link](http://stackoverflow.com/q/4595212/797672)中有一些關於如何更改默認值的建議 – Bassetassen

+1

在VS2010中,Target Framework設置可以從Compile選項卡中找到,在另一個pop高級編譯選項「按鈕中的對話框。謝謝!我們在解決方案中有幾個項目,它們之間的引用正在迷失。將目標框架設置爲遠離客戶端配置文件解決了問題。 –

1

我遇到了一次非常類似的問題。在我的情況下,問題原來是「消失」命名空間程序集的缺失依賴。最終給我提供的信息是this StackOverflow答案,以提高MSBuild輸出詳細程度。提高詳細設置後,IDE應該給出編譯失敗的更具體原因。