2011-09-19 116 views
1

我在.Net 3.5中編寫應用程序。編譯時未找到C#dll

到目前爲止,我在解決方案中有3個項目。當從我的主項目中添加對其他項目的引用時,intellisense設法從另一個項目的dll中找到類,但是在編譯時它似乎在「丟失」引用。

這可能是因爲我最初創建的目標框架爲.NET 4.0的項目。但是,因爲我需要使用ASP.NET Web服務,所以我必須降級到3.5。

任何幫助將不勝感激。

+0

編譯時是否收到編譯器錯誤?如果是這樣,請發佈。或者你有運行時錯誤? 您是否已將所有項目降級到.NET 3.5? – Jan

+0

是的我得到一個編譯器錯誤。該錯誤指出「找不到MyClass」,即當您忘記將引用添加到項目中時得到的相同錯誤 – Jonny

回答

0

的referrenced項目必須複製本地:真 Referrence - >性質在 - >複製本地:真

+0

當您部署dll尚不可用的程序集時,需要複製本地文件。我不認爲這是問題。 –

+0

感謝您的迅速回復。但我不確定在哪裏可以找到複製本地選項 – Jonny

+0

只需打開項目的「參考」部分,單擊所述參考並在屬性網格中將「複製本地」設置爲true。 – SuperOli

0

批清潔解決方案中的所有項目,確保在您的依賴關係圖所有項目面向.NET 3.5框架。檢查.csproj文件中的引用HintPath(使用文本編輯器打開)以查看對外部DLL的引用,並確保它們全部爲< = 3.5。

但是,由於我需要使用ASP.NET Web服務,我必須降級到3.5。

在.NET 4中還有幾個不同的Web服務項目。我不太明白這一舉措。

+0

如果我將目標框架設置爲.Net 4.0,visual studio會隱藏掉asp.net web服務。相反,只有WCF服務可見。 順便說一句,我所有的項目清理和他們的目標框架設置爲3.5 – Jonny

0

你有項目引用,intellisense 看到你引用的類,但編譯時,編譯器似乎沒有找到引用的程序集。

我看到這種行爲可能有兩個原因:

  1. 你的主要項目引用.NET Framework的版本低於您的庫項目(這是最可能的原因)。
  2. 您的圖書館項目將無法完全/按錯誤順序生成(檢查配置管理器中的設置,在solition資源管理器中右鍵單擊您的解決方案)。
+0

第1點:不,所有項目的.Net Framework是3.5 第2點:試圖按正確的順序一次編譯1,問題仍然存在:/ – Jonny

+0

您是否使用相同的配置/平臺設置編譯所有項目? – Jan