0
|
Miguel Mesquita Alfaiate · 技术社区 · 1 年前 |
|
1
1
我想我可以重现这种情况:
你想把一些第三方软件包集成到一个dll中,你想把所有必要的东西都放在一个dll里,对吧? 如果你想要这个,那么:1、如果你想要官方的原生方法来实现这一点, 答案是否定的。 2、如果您使用第三方工具,那么 这是可以做到的。 但是 我非常不建议这样做。 下面是一个详细的分步实现,我解释了这个想法是如何工作的,以及为什么我强烈反对它(我这边的例子是net6 dll): 1'您需要一个工具来实现这一点:有一个名为 'ILRepack' 。 Install命令:
之后,您将能够在以下路径中找到ILRepack.exe文件:
将上述路径配置为机器的系统环境路径。 2'准备所需的dll文件:例如,在我这边,它们是:
打开一个新的命令提示符终端,然后转到存储上述dll文件的路径,然后运行命令:
之后,在同一目录中将有一个名为Merged.dll的dll文件。 你可以在你想要的项目中这样引用这个dll文件:
之后,您将能够运行/调试测试项目:
这确实是可能的,但我强烈反对,在这种情况下,可能会出现部分合并、版本不匹配、绑定重定向、内联等问题。此方法甚至可能导致VS IntelliSense出现问题。如果发生这种情况,将使您的开发体验非常糟糕。 总之,本机方法无法实现合并dll的要求(或将包内容合并到dll)。你可以用第二种方法来实现这一点,但我不推荐。经典的依赖关系管理方法比这更成熟。 |
![]() |
Alex Zhukovskiy · 在本地测试nuget包 6 年前 |