第一步 Install MSBuild.ILMerge.Task from Nuget package manager
https://www.nuget.org/packages/MSBuild.ILMerge.Task/
第二步 需要合并的dll复制到本地为true

第三步 需要 *.snk 文件签名
在Dynamcs CRM项目维护交接过程中,我们经常会使用其他合作者的插件代码。但是每次拿到别人代码编译的时候插件密钥都要重新输入密钥的账号密码。而且如果密钥都是的话比较麻烦。所以这里就针对这个问题做了优化。
首先在VS里面打开配置命令行环境(Command Prompt)
Tools->External Tools
配置项 值 Title 用户自定义,会显示在TOOLS的菜单项中。 Command C:\Windows\System32\cmd.exe Arguments 这个主要是设置VS的环境变量。
/k “D:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\Common7\Tools\VsDevCmd.bat”
在VS2019中,配置如下: /k “D:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\Common7\Tools\VsDevCmd.bat”
注意:这里的双引号,必须是英文引号,不能是中文引号Initial Directory $(ProjectDir)
这是命令行启动后默认的初始目录,有几个选项可供选择这里我选Project Directory开始生成公钥
依次输入下面三条命令,会在项目根目录产生签名文件
1
2
31.sn -k key.snk 得到的文件在命令提示符的当前文件夹下
2.sn -p key.snk keyPublic.snk (从key.snk中提取公匙存入keyPublic.snk文件)
3.sn -t keyPublic.snk 得到public key token绑定签名文件
找到项目属性,在signing,通过从文件引入找到我们的密钥就可以了,选择对应的签名文件
参考:生成snk文件
生成 dll
目标文件在 bin\debug 目录生成的 dll 文件就是合并好的 dll.
参考文献
https://nicknow.net/dynamics-crm-ilmerge-dll-plugin/