3

例如,假设我想在我的 DLL中使用Bouncy Castle 。由于我想简化部署,我使用 ILMerge 来组合MyDll.dllBouncyCastle.Crypto.dll生成MyDllMerged.dll. 我/internalize在 ILMerge 中使用该标志,这样客户就不会使用我的 Bouncy Castle。

如果我的消费者EndUser.exe也使用 Bouncy Castle,他会看到“Org.BouncyCastle...TypeFoo已在MyDllMerged.dll”中定义。因此,他注定无法自己使用他的那个图书馆。

除了内部化之外,是否有告诉 ILMerge 重命名程序集中的所有命名空间?或者有什么其他方法可以解决这个问题?(我不想单独分发“合并”版本和“未合并”版本。)

4

1 回答 1

1

一种方法是使用混淆器(SmartAssembly、Dotfuscator 等)仅对生成的程序集的 Org.BouncyCastle 命名空间进行混淆。

于 2011-01-28T16:06:12.680 回答