如何将同一项目中的类编译为不同的 DLL

本文关键字:编译 DLL 项目 | 更新日期: 2023-09-27 18:32:10

大家好,我有一些类的类库项目。

我想知道如何将每个类编译为不同的 DLL。

我不想为每个dll创建单独的项目,

使用这个dll作为插件,但这些都是非常简单的插件,我不想为每个插件创建项目。

我将把所有这些dll放在同一个目录中并动态加载它们,

谢谢

如何将同一项目中的类编译为不同的 DLL

为每个类创建一个单独的.cs文件。

然后,按照 Nygma7 的答案中的建议创建 DLL,打开 Visual Studio 命令提示符,CD.cs文件的位置,并在提示符下创建 DLL: csc /target:library /out:test1.dll test1.cs等。

为每个

类创建一个单独的项目。

我认为这不是一个好方法,但无论如何。可以从项目中排除类,然后进行编译。

您还可以将编译器指令用作:

#define Class1
#if Class1
class 1
{
}
#endif
#undef Class2
#if Class2
class 2
{
}
#endif

然后在输出 DLL 中编译类 1 或类 2。但是,这不会像您想要的那样自动化。想不出其他办法。

两种解决方案:1可以在解决方案中分离创建新项目的类,将创建一个类库,该类库将生成一个 dll。然后,您必须转到引用并将新引用添加到项目中。

你应该考虑这是否是一个很好的解决方案,

如果你打算在其他项目中使用该类,这是一个很好的解决方案。

阿拉伯数字代码示例...

using System;
namespace SimpleMaths
{
  public class Operations
  {
    public static int add(int a, int b)
    {
        return a + b;
    }
    public static int substract(int a, int b)
    {
        return a - b;
    }
    public static int multiply(int a, int b)
    {
        return a * b;
    }
  }
}

现在打开 Start>>VisualStudio2005/2008>> Visual Studio tools>>Visual Studio Command Prompt。

现在在命令提示符中找到保存刚刚创建的.cs文件的目录。使用 CD 命令。

csc/target:Library/out:File.dll test.cs

这将生成所需的DLL文件

你需要退后一步,想想你在问什么。您有多个类,它们都是单个项目的一部分,但您希望将该项目构建为多个不同的部分。你为什么要这样做?关于您的代码,以下两种情况之一是正确的:

  1. 你们的类是相互依赖的;即 Class1取决于Class2.在这种情况下,您不希望将它们构建到单独的 dll 中,因为这些 dll 不会自行运行。
  2. 您的类彼此独立;即 Class1Class2没有任何关系。在这种情况下,为什么它们在同一个项目中?这些类属于它们自己的项目,因此可以单独生成它们。

阅读您的更新后,我怀疑您处于案例#2中。您应该将类分成它们自己的项目,只要它们不相互依赖。你说"我不想把他们分开",但你没有说为什么。你有理由不希望他们分开吗?您仍然可以将它们全部作为同一解决方案的一部分,并且仍然可以使用单个命令生成它们。