当我想从其他项目中使用它时,找不到我的类库

问题描述:

我有一个类库,我想用它作为其他项目的参考。但是,当我尝试创建一个公共类的实例时,我无法构建该项目。它说,无法找到类型或命名空间ClassLibName。 (你是否缺少using指令或程序集引用?)。我检查了参考并再次添加它。我也添加了命名空间。你对这个问题有什么建议吗?当我想从其他项目中使用它时,找不到我的类库

+1

你能提供一些代码来给出上下文吗?如果没有这方面的内容,下面的答案对你提出的问题是正确的。 –

我的类库和其他项目有不同的目标框架。我将它们设置为.Net Framework4,问题就解决了。感谢您的帮助。

+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

确保您要创建声明为类库公共类的该实例:

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

然后在客户项目中添加该组件作为参考,然后

using ClassLibName; 

... 

SomeClass instance = new SomeClass(); 
+0

我的课程是公开的 – cagin

+0

@cagin,那么你将不会有任何问题实例化它们。你是否在我的答案中显示的类的名称空间中添加了'using'? –

您缺少using指令,或者您没有在项目中添加对程序集的引用,或者两者都没有。

在解决方案资源管理器中,右键单击引用,单击添加引用,转到浏览,选择其他项目的编译后的dll。

如果,例如,你的类是在命名空间Hello.World,你也应该在文件的开头添加

using Hello.World; 

+0

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

也许你的函数库是使用比你的项目的框架更大的版本...

如果是这样,你必须升级你的项目,如果有可能建立它...或者降级的图书馆!