Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/319.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/21.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编译成另一个dll_C#_.net_Visual Studio 2010_Dll - Fatal编程技术网

C# 将一些dll编译成另一个dll

C# 将一些dll编译成另一个dll,c#,.net,visual-studio-2010,dll,C#,.net,Visual Studio 2010,Dll,我有一个dll项目,它使用一些第三方dll。我希望编译结果只是一个包含所有第三方dll的大型dll。如何在Visual Studio 2010中执行此操作?假设DLL都是受管理的,则需要使用ILMerge: 以及一些相关问题: 这里有几种方法可以实现这一点。以下是几点: 您可以在一个项目中包含源代码(如果可用),然后将其编译为单个二进制文件 您可以将外部程序集添加为资源,并在运行时动态加载它们 您可以使用类似eazfouscator.Net的东西,它使用ILMerge在编译时合并程序集。(也

我有一个dll项目,它使用一些第三方dll。我希望编译结果只是一个包含所有第三方dll的大型dll。如何在Visual Studio 2010中执行此操作?

假设DLL都是受管理的,则需要使用ILMerge:

以及一些相关问题:


这里有几种方法可以实现这一点。以下是几点:

  • 您可以在一个项目中包含源代码(如果可用),然后将其编译为单个二进制文件

  • 您可以将外部程序集添加为资源,并在运行时动态加载它们

  • 您可以使用类似eazfouscator.Net的东西,它使用ILMerge在编译时合并程序集。(也可以直接使用ILMerge,但EAZFOUSCATOR具有很好的包装特性)


  • ILMerge是仅.NET的解决方案(不适用于非托管DLL)

    一个很好的工具是NETZ(.net可执行压缩程序和打包程序),它将所有依赖项压缩到一个exe/dll文件中

    我最近没有使用过它,所以我不知道它是否与.NET4.0兼容 虽然在一段时间内没有得到太多的更新,但我会尝试一下


    旁注:重新编译到您自己的程序集中可能违反第三方dll许可证。检查您是否在意,如果确实在意,请与第三方确认是否合适。