Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/299.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何将同一项目中的类编译为不同的DLL_C#_Dynamic_Dll_Compilation - Fatal编程技术网

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

C# 如何将同一项目中的类编译为不同的DLL,c#,dynamic,dll,compilation,C#,Dynamic,Dll,Compilation,大家好,我有一些类的类库项目 我想知道如何将每个类编译成不同的DLL 我不想为每个dll创建单独的项目 我使用这个dll作为插件,但这些插件非常简单,我不想为每个插件创建项目 我将把所有这些dll放在同一个目录中,并动态加载它们 谢谢你为每节课创建一个单独的项目。为每节课创建一个单独的项目。我认为这不是一个好方法,但无论如何。您可以从项目中排除类,然后进行编译 您还可以将编译器指令用作: #define Class1 #if Class1 class 1 { } #endif #undef C

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

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

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

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

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


谢谢你

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

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

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

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

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

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

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

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

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

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

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

然后在输出DLL中编译Class1或Class2。但是,这不会像您希望的那样自动化。无法想象其他方式。

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

你们的课程相互依赖;i、 一级取决于二级。在这种情况下,您不希望将它们构建到单独的DLL中,因为这些DLL无法独立工作。 你们的班级是相互独立的;i、 e.Class1与Class2没有关系。在这种情况下,为什么他们在同一个项目中?这些类属于它们自己的项目,因此它们可以单独构建。
在读了你的更新后,我怀疑你在案例2中。你应该把你的类分成他们自己的项目,只要他们不相互依赖。你说过我不想把他们分开,但你没有说为什么。你有理由不想让他们分开吗?您仍然可以让它们都成为同一解决方案的一部分,并且您仍然可以使用一个命令来构建它们。

您需要退后一步,思考您的要求。您有几个类,它们都是单个项目的一部分,但您希望将该项目构建到几个不同的部分中。你为什么要这么做?关于代码,有两件事是正确的:

你们的课程相互依赖;i、 一级取决于二级。在这种情况下,您不希望将它们构建到单独的DLL中,因为这些DLL无法独立工作。 你们的班级是相互独立的;i、 e.Class1与Class2没有关系。在这种情况下,为什么他们在同一个项目中?这些类属于它们自己的项目,因此它们可以单独构建。 在读了你的更新后,我怀疑你在案例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;
    }
  }
}
现在打开开始>>VisualStudio2005/2008>>Visual Studio工具>>Visual Studio命令提示符

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

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

这将生成您想要的dll文件

两种解决方案: 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;
    }
  }
}
现在打开开始>>VisualStudio2005/2008>>Visual Studio工具>>Visual Studio命令提示符

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

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


这将生成您想要的dll文件

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

然后按照Nygma7的回答中的建议创建DLL,方法是打开Visual Studio命令提示符,将CD转到.cs文件的位置,然后在pr处创建DLL ompt:
csc/target:library/out:test1.dll test1.cs等

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

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

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