Слияние сборок WiX Custom Action для общего пользования и ILMerge
Когда проекты с настраиваемыми действиями.NET создаются с использованием набора инструментов WiX, создается впечатление, что он объединяет весь потенциально необходимый код из прямых ссылок на проекты, отбрасывая ненужные пути кода. Является ли это правильной интерпретацией поведения, и если да, то какие могут быть недостатки (такие как проблемы отражения)?
Можно ли как-то использовать эту систему для более общего использования вне проектов инсталлятора вместо ILMerge?
1 ответ
Насколько мне известно makesfxca.exe
(это инструмент, о котором вы говорите, не так ли?) - это не слияние DLL в чисто техническом смысле. Скорее, он берет свою собственную "заглушку"-dll с именем SfxCA.dll
добавляет / упаковывает другие зависимости (например, собственные WIX Microsoft.Deployment.WindowsInstaller
а также управляемая dll, содержащая IL-код для настраиваемого действия), создающая нативную dll, способную к "самораспаковыванию". При установке msi этот архив временно извлекается.
Таким образом, он "разрешает" ссылки на проекты путем копирования переданных в dll makesfxca
возможность пропустить включение только что упомянутых, но не скопированных локально.Net Framework DLL. Я не уверен, действительно ли это откажется от чего-либо.
ILMerge
с другой стороны обрабатывает управляемые dll-файлы, выполняя реальное слияние, а не упаковывая, а затем распаковывая файлы.