例如,假设我想在我的 DLL中使用Bouncy Castle 。由于我想简化部署,我使用 ILMerge 来组合MyDll.dll
和BouncyCastle.Crypto.dll
生成MyDllMerged.dll
. 我/internalize
在 ILMerge 中使用该标志,这样客户就不会使用我的 Bouncy Castle。
如果我的消费者EndUser.exe
也使用 Bouncy Castle,他会看到“Org.BouncyCastle...TypeFoo
已在MyDllMerged.dll
”中定义。因此,他注定无法自己使用他的那个图书馆。
除了内部化之外,是否有告诉 ILMerge 重命名程序集中的所有命名空间?或者有什么其他方法可以解决这个问题?(我不想单独分发“合并”版本和“未合并”版本。)