为了账号安全,请及时绑定邮箱和手机立即绑定

请问如何将多个程序集合并为一个?

请问如何将多个程序集合并为一个?

C#
摇曳的蔷薇 2019-11-17 16:12:59
如何将多个程序集合并为一个?我使用EXE项目(azure应用程序的启动任务)使用我的服务堆栈,因为我已将以下服务堆栈的DLL和一些Azure的DLL复制到EXE项目中。当我构建这个EXE项目时,Azure DLL将与我的EXE捆绑在一起但服务堆栈的DLL不会与EXE捆绑在一起,因为要在任何机器上运行我的EXE,我需要手动复制所有服务堆栈的DLL。我已经使用了这个服务栈的dll来使用JsonServiceClient client = new JsonServiceClient(servicepath);我应该怎么做才能将所有这些DLL捆绑到我的EXE中?
查看完整描述

3 回答

?
呼啦一阵风

TA贡献1802条经验 获得超6个赞

您正在寻找的工具称为ILMerge。它是一个命令行工具,可以像这样使用:

ilmerge /target:winexe /out:MyApp.exe          MyExe.exe ServiceStack.dll ServiceStack.Interfaces.dll ServiceStack.ServiceInterface.dll  ServiceStack.Text.dll

还有一篇文章介绍了如何在此处将ILMerge包含到VS项目设置中


查看完整回答
反对 回复 2019-11-18
?
慕运维8079593

TA贡献1876条经验 获得超5个赞

将引用的程序集包含为嵌入式资源的一个很棒的工具是Costura(一个Fody插件)。作者Simon Kropp将其描述如下:

[...]两种方法的组合:

  • Jeffrey Richter建议使用嵌入式资源作为合并程序集的方法

  • Einar Egilsson建议使用cecil创建模块初始化器

结果是一个超级简单的解决方案,只需要从NuGet 获取Costura.Fody。

特征:

  • 包括调试符号

  • 压缩嵌入式组件

  • 包括/排除特定组件

  • 其他(见自述)



查看完整回答
反对 回复 2019-11-18
  • 3 回答
  • 0 关注
  • 447 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信