2013-05-06 47 views
1

背景:我是C#的新手,並使用Visual Studios 2010 Express。C#使用<myowndll>,不起作用(VS10 Express)

我有一個班(我們稱之爲myclass),我想在多個項目中使用它。我曾經使用Project-> Add Existing Item ...添加類,它創建了myclass.cs的副本。

現在我發現,當我構建原始的myclass.cs時,它會創建一個myclass.dll並將其放置在我的項目的release文件夾中。

但是當我嘗試使用這個DLL,我得到以下錯誤:

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

這是怪我,因爲我已經提到它(這也是在參考文件夾我的Solution Explorer)。而且我已經添加到我的代碼:

using myclass; 

那麼我在做什麼錯了?

更新:當我嘗試我的舊方法(添加現有的項目 - > myclass.cs)錯誤信息消失。所以這不是拼寫正確的問題。

回答

1

好了,我發現自己的答案。事實證明,當您使用使用函數時,它會自動搜索要使用的名稱空間中的所有公共類。

如果找不到公共類,它拒絕識別該DLL。

此外,沒有指定類使其內部。 所以:

class myclass   // internal! 
private class myclass // private! 
public class myclass // only this makes it visible for others! 

一切都改變MyClass類公共MyClass類後還好。

+1

默認情況下(未指定時)是'internal'。 – Rotem 2013-05-06 08:37:49

+0

這是有用的信息!內部和私人之間有區別嗎? – Jordy 2013-05-06 08:39:37

+1

是的,可以從同一個程序集內(通過程序集中的任何類)訪問「internal」。 'private'只能在同一個班級內訪問。 – Rotem 2013-05-06 10:55:23

1

第一添加DLL:

點擊引用您的項目資源管理器在Visual Studio中,並添加您的DLL,那麼你可以使用它作爲您所預期的。

+0

我已經引用它,我想? 「這對我來說很奇怪,因爲我已經引用了它(它也在我的解決方案資源管理器的參考文件夾中)。」 – Jordy 2013-05-06 06:08:58

+0

您的dll是否顯示在Visual Studio中的項目瀏覽器中? – WhileTrueSleep 2013-05-06 06:10:46

+0

查看我的問題: 「(它也在我的解決方案資源管理器的參考文件夾中),而且我已經將它添加到我的代碼中:」 – Jordy 2013-05-06 06:12:23

1

在項目中添加引用並檢查該程序集的目標Framework版本是否適合該項目。

檢查組件內的命名空間,然後使用他們喜歡的:

using YourAssemblyNamespace.class 
+0

我已經引用它並且都使用.Net 4.0框架 – Jordy 2013-05-06 06:11:34

+0

它甚至不識別名稱空間,更不用說該名稱空間中的類。 – Jordy 2013-05-06 06:29:26