Кристофер Пейнтер прав. Я пришел к такому же выводу и смог заставить это работать. Если это кому-нибудь поможет в будущем, вот более конкретно то, что я сделал:
Я перешел в папку «Поведение и логика c» на вкладке «Конструктор установки» и выбрал «InstallScript». Затем на правой панели я выбрал функцию, с которой связана моя DLL, а затем выбрал обработчик событий «Installed». Следующий скрипт зарегистрировал мою DLL для COM-взаимодействия:
LaunchApplication("C:/Windows/Microsoft.NET/Framework/v4.0.30319/RegAsm.exe",
"../path/to/my.dll /codebase", "",
SW_HIDE, 0, LAAW_OPTION_NOWAIT);
И затем я сделал нечто подобное для обработчика событий Uninstalled:
LaunchApplication("C:/Windows/Microsoft.NET/Framework/v4.0.30319/RegAsm.exe",
"/unregister ../path/to/my.dll", "",
SW_HIDE, 0, LAAW_OPTION_NOWAIT);