Пользовательские действия InstallerClass (InstallUtil) очень хрупкие и никогда не должны использоваться.Скорее всего, проблема, с которой вы столкнулись, состоит в том, что ваша сборка настраиваемых действий содержит ссылку на сборку, которую больше нельзя найти на диске, поскольку она была объединена с другой сборкой.
Эта проблема может возникнуть при установке InstallUtil CAон вызывается проектом установки Visual Studio или проектом MSI InstallShield Basic, потому что проблема не в MSI, а в вашем CA.
Я бы рекомендовал вам взглянуть на WiX Deployment Tools Framework (DTF).Это гораздо более чистый способ реализации настраиваемых действий управляемого кода, так что ЦС и все его зависимости отображаются в виде единой встроенной библиотеки DLL для установщика Windows.Во время выполнения родная заглушка извлекает все файлы, запускает ваш код .NET и маршалирует все вызовы MSI API между двумя сторонами для вас.
Он очень чистый и может использоваться в установочных проектах WiX,InstallShield и другие средства разработки MSI, потому что на выходе получается простая Win32 DLL с экспортированными функциями stdcall.(Msi Type 1 Custom Action Spec)