2

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

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

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

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

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

谢谢

4

5 回答 5

2

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

然后像在 Nygma7 的答案中建议的那样创建 DLL,方法是打开 Visual Studio 命令提示符,CD到 .cs 文件的位置并在提示符处创建 DLL: csc /target:library /out:test1.dll test1.cs等等。

于 2014-01-28T19:41:03.837 回答
1

为每个班级创建一个单独的项目。

于 2012-04-24T16:12:22.473 回答
1

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

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

#define Class1
#if Class1
class 1
{
}
#endif

#undef Class2
#if Class2
class 2
{
}
#endif

然后在输出 DLL 中编译 Class1 或 Class2。但是,这不会像您想要的那样自动化。想不出别的办法。

于 2012-04-24T16:20:49.450 回答
0

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

您应该考虑这是否是一个好的解决方案,如果您要在其他项目中使用该类,这是一个很好的解决方案。

2 代码示例...

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;
    }
  }
}

现在打开开始>>VisualStudio2005/2008>>Visual Studio 工具>>Visual Studio 命令提示符。

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

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

这将生成您想要的 dll 文件

于 2012-04-24T17:43:40.450 回答
0

你需要退后一步,想想你在问什么。您有几个类都是单个项目的一部分,但您希望将该项目构建成几个不同的部分。你为什么想这么做?关于您的代码的两件事之一是正确的:

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

阅读您的更新后,我怀疑您是第 2 种情况。只要它们不相互依赖,你就应该将你的类分成它们自己的项目。你说过“我不想把它们分开”,但你没有说为什么。你有理由不想让他们分开吗?您仍然可以将它们全部包含在同一个解决方案中,并且您仍然可以使用单个命令构建它们。

于 2012-04-24T16:28:26.317 回答