Слияние сборок 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-файлы, выполняя реальное слияние, а не упаковывая, а затем распаковывая файлы.

Другие вопросы по тегам