是否可以使用类库项目中的类子集编译dll?

时间:2009-12-21 11:49:09

标签: c# dll

假设我们有一个包含10个类的类库项目。现在我想要创建一个dll,它应该只包含那些10中的6个类。我们如何才能实现这个目标?

5 个答案:

答案 0 :(得分:7)

您可以使用编译器指令。 E.g。

#define ClassA
#if ClassA
class A
{
}
#endif

#undef ClassB
#if ClassB
class B
{
}
#endif

将包括A类,而B类则不包括。

答案 1 :(得分:1)

假设您遵循将一个类放在一个源代码文件中的常见做法:选择您不希望包含在解决方案资源管理器中的类,并将其Build Action属性设置为None。

答案 2 :(得分:1)

我会在附近的文件夹中创建第二个项目文件,并将其指向包含所需类的六个源文件。通过这种方式,您最终得到了两个具有不同名称和版本号的二进制文件,这将使以后的生活变得更加混乱。

否则,您可能会冒险将某个错误的二进制文件放下,并且要么运送四个要隐藏的类,要么无法发送四个实际需要的类。

想想看,你没有提到你想要的六个和你不想要的四个之间是否有任何互动。假设没有,只需将六个插入一个单独的项目,并有两个“类库”二进制文件,一个有六个,一个有四个。这样就没有重复的功能或可能混淆哪些二进制文件包含哪些类。

答案 3 :(得分:0)

Exclude 来自项目和 build 。从 dll Debug 文件夹中选择 Release

答案 4 :(得分:0)

将不必要的类放在 #ifdef EXTRA ... #endif 括号中,然后您可以在编译期间定义EXTRA以获取其他类。