2012-01-09 52 views
0

我有一個Visual Studio項目的奇怪問題。我正在使用.Net 4框架編寫一個C#應用程序。我添加了一些對DLL的引用(我相信它們是在3.5中編譯的),並且它們一直工作直到我構建解決方案。發生這種情況時,它將刪除引用,因爲編譯器無法看到這些DLL中的名稱空間。有任何想法嗎?編譯應用程序時,它將刪除引用

錯誤:

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

+0

一般情況下,您應該在錯誤和警告窗口中看到警告 - 我的猜測是您的項目中不存在必需的引用之一。 – 2012-01-09 16:23:38

+1

你在你的項目中設置ecopyLocal = true ..?還要記住,4.0 GAC與3.5 GAC是分開的,如果你是GAC的話.DLL的 – MethodMan 2012-01-09 16:23:49

+2

@Neil Knight你是否直接將dll複製到bin目錄中? – 2012-01-09 16:27:51

回答

2

我設法解決了這個問題。我檢查了Project Properties,發現它使用.Net 4 Client Profile而不是.Net 4 Full框架。將其更改爲完整版已解決了我的問題。我相信這個問題是由於缺少Client Profile中的System.Web命名空間造成的。

1

我會建議你存儲在您的解決方案在一個單獨的文件夾中的DLL文件,然後從新說文件夾添加到它們的引用。將dll直接複製到bin目錄時,我遇到了同樣的問題。 VS會清理所有這些dll,因此它不是永久存儲所述dll的理想候選者。

另注:

儘管都應該防止我建議的方案的選項,它似乎仍然從我自己的親身經歷來發生,我們都知道VS是不是沒有錯誤! = P

+0

我有這個確切的設置,它不工作。 – 2012-01-09 16:36:56

+0

如果你正在使用.config文件,你還可以嘗試將項目設置回3.5項目,而不是4.0。記住,如果你還沒有意識到這一點,4.0會添加引用以及令牌,這幾乎聽起來像就像從3.5和4.0引用.dlls的版本問題一樣,很難說,也沒有看到你如何定義你的命名空間 – MethodMan 2012-01-09 16:42:44

相關問題