大家好,我有一些类的类库项目。
我想知道如何将每个类编译为不同的 DLL。
我不想为每个 dll 创建单独的项目,
我使用这个 dll 作为插件,但这些是非常简单的插件,我不想为每个插件创建项目。
我将把所有这些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 中编译 Class1 或 Class2。但是,这不会像您想要的那样自动化。想不出别的办法。
两个解决方案: 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 文件
你需要退后一步,想想你在问什么。您有几个类都是单个项目的一部分,但您希望将该项目构建成几个不同的部分。你为什么想这么做?关于您的代码的两件事之一是正确的:
Class1
取决于Class2
. 在这种情况下,您不想将它们构建到单独的 dll 中,因为这些 dll 不会自行运行。Class1
与 没有关系Class2
。在这种情况下,为什么他们在同一个项目中?这些类属于它们自己的项目,因此可以单独构建它们。阅读您的更新后,我怀疑您是第 2 种情况。只要它们不相互依赖,你就应该将你的类分成它们自己的项目。你说过“我不想把它们分开”,但你没有说为什么。你有理由不想让他们分开吗?您仍然可以将它们全部包含在同一个解决方案中,并且您仍然可以使用单个命令构建它们。