Я пытаюсь создать проект установки.
При установке я хочу создать некоторые ключи реестра и удалить другие.
При удалении я хочу сделать наоборот.
Что касается создания ключей при установке и удаления их при удалении - нет проблем, оно встроено в проект установки.
Проблема заключается в удалении ключей при установке (и добавлении их обратно при удалении).
Последний не встроен в проект установки, поэтому мне пришлось использовать Custom Action .
И здесь возникает другая проблема:
Машина, на которой я устанавливаю, - Windows 7 64bit . Я изменил проект установки TargetPlatform на 64-битную, а также настраиваемое действие dll для 64-битной.
Пользовательский dll (который, конечно, наследует System.Configuration.Install.Installer
) выполняет regedit.exe (с файлом .reg в качестве параметра), используя Process.Start
, но не имеет значения, как я «играю» с целью платформы, когда я пытаюсь установить его (дважды щелкнув по скомпилированному проекту установки), он открывает несколько процессов msiexec.exe, некоторые в 32-битном режиме (проверено в ProcessExplorer), поэтому моя пользовательская dll продолжает менять подузлы SysWow64 вместо 64-битного узла ( который находится где-то под HKEY_LOCAL_MACHINE).
Есть ли способ выполнить это с помощью проекта установки VS и не переходить к установщику другого типа?