【问题标题】:how to compile classes in the same project to different DLL如何将同一项目中的类编译到不同的DLL
【发布时间】:2014-01-29 03:41:03
【问题描述】:

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

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

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

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

我打算把所有这些dll放在同一个目录下动态加载,

谢谢

【问题讨论】:

  • 为每个班级创建一个不同的项目。
  • 是的,这将是一种简单而丑陋的方式......
  • 你为什么想要这样做?可能有更好的方法。
  • 不同的命名空间能解决你的问题吗?如果你只是想要一种方法来分离各个类的结构。

标签: c# dynamic dll compilation


【解决方案1】:

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

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

【讨论】:

    【解决方案2】:

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

    【讨论】:

      【解决方案3】:

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

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

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

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

      【讨论】:

        【解决方案4】:

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

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

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

        【讨论】:

          【解决方案5】:

          两种解决方案: 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 文件

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 2011-07-09
            • 1970-01-01
            • 1970-01-01
            • 2014-07-10
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多