Например, предположим, что я хочу использовать Bouncy Castle в своей DLL. Поскольку я хочу упростить развертывание, я использую ILMerge для объединения MyDll.dll
и BouncyCastle.Crypto.dll
для создания MyDllMerged.dll
. Я использую флаг /internalize
в ILMerge, чтобы клиенты не использовали мой Bouncy Castle.
Если мой потребитель EndUser.exe
также использует Bouncy Castle, он увидит, что "Org.BouncyCastle...TypeFoo
уже определено в MyDllMerged.dll
". Поэтому он обречен и не может сам пользоваться своей той библиотекой.
Можно ли в любом случае указать ILMerge переименовать все пространство имен в сборке в дополнение к его интернализации? Или есть другие способы решить эту проблему? (Я бы не хотел, чтобы не распространял отдельно "объединенную" и "необъединенную" версии.)
TypeFoo
, он на самом деле там и вызовет возможную ошибку коллизии пространства имен во время компиляции. - person kizzx2   schedule 28.01.2011