2011-11-06 60 views
3

我有一個類庫,我想用它作爲其他項目的參考。但是,當我嘗試創建一個公共類的實例時,我無法構建該項目。它說,無法找到類型或命名空間ClassLibName。 (你是否缺少using指令或程序集引用?)。我檢查了參考並再次添加它。我也添加了命名空間。你對這個問題有什麼建議嗎?當我想從其他項目中使用它時,找不到我的類庫

+1

你能提供一些代碼來給出上下文嗎?如果沒有這方面的內容,下面的答案對你提出的問題是正確的。 –

回答

3

我的類庫和其他項目有不同的目標框架。我將它們設置爲.Net Framework4,問題就解決了。感謝您的幫助。

+1

我認爲你應該接受幫助解決方案而不是回答你自己的問題 –

1

是您嘗試實例化internal的課程嗎?這是默認的:

// These are equivalent (for a top-level class) 
class Foo 
internal class Foo 

// This is what you need 
public class Foo 

如果你擺脫代碼實例化類,但保持using指令的命名空間和參照裝配,它編譯?如果是這樣,那就表明它確實是特定課程的問題,而不是你如何指向圖書館。

+0

我的課程是公開的 – cagin

+1

@cagin:好的,我的答案的後半部分的問題呢? 'using'指令中的命名空間是否正確? –

+0

是的,我添加命名空間到使用塊 – cagin

4

確保您要創建聲明爲類庫公共類的該實例:

namespace ClassLibName 
{ 
    public class SomeClass 
    { 
     ... 
    } 
} 

然後在客戶項目中添加該組件作爲參考,然後

using ClassLibName; 

... 

SomeClass instance = new SomeClass(); 
+0

我的課程是公開的 – cagin

+0

@cagin,那麼你將不會有任何問題實例化它們。你是否在我的答案中顯示的類的名稱空間中添加了'using'? –

2

您缺少using指令,或者您沒有在項目中添加對程序集的引用,或者兩者都沒有。

在解決方案資源管理器中,右鍵單擊引用,單擊添加引用,轉到瀏覽,選擇其他項目的編譯後的dll。

如果,例如,你的類是在命名空間Hello.World,你也應該在文件的開頭添加

using Hello.World; 

+0

我做到了,但結果相同。 – cagin

2

也許你的函數庫是使用比你的項目的框架更大的版本...

如果是這樣,你必須升級你的項目,如果有可能建立它...或者降級的圖書館!

相關問題