没有将所有类编译成dll

时间:2011-01-24 19:22:15

标签: c# dll

我在c#中有一个包含很少项目的解决方案,我想在一个项目上添加一个引用到另一个项目,但是在我添加之后,我添加引用的项目没有检测到这个dll中的所有类。似乎并非所有类都编译到dll中。

有谁知道原因?

6 个答案:

答案 0 :(得分:6)

您需要创建类public,以便其他项目可以使用它们。

如果这没有帮助,请尝试重建解决方案。

答案 1 :(得分:4)

另一种可能性是没有包含类文件进行编译。

在Visual Studio中,确保将文件的Build Action属性设置为Compile。

答案 2 :(得分:3)

引用项目中的类应具有显式修饰符“public”。

答案 3 :(得分:0)

顶级类默认为“内部”访问,因此仅适用于同一程序集(dll)中的类型。最喜欢你的一些类型包括“公共”(并因此可用),而有些则不包括(因此不可用)。

你还应该检查你想要使用这些类型的文件中是否有所有必要的“使用”指令。

答案 4 :(得分:0)

我有同样的问题。确保将类定义为“public”。默认情况下,类是内部的。

MSDN Class

答案 5 :(得分:0)

刚出现这个问题:我有两个DLL,一个dll引用另一个:其他dll是Framework 4.5.2,One 3.5 ......那些必须是相同的。 我将它们都设置为3.5(Unity3D需要,因为这是我正在处理的) 然后它没有内部构建。