#wix
#wix
Вопрос:
У меня есть приложение, в котором я вызываю установщик WIX MSI, используя System.Diagnostic.Process
определенное нажатие кнопки.
Я передаю параметр установщику MSI с помощью командной строки.
Теперь то же значение параметра может быть обновлено конечным пользователем, используя UIDialog, доступный в установщике Wix MSI.
Из моего вызывающего кода, как я могу получить это обновленное значение после завершения установки?
Комментарии:
1. В качестве альтернативы, вы можете запросить его заранее из пользовательского интерфейса приложения и передать его как свойство MSI. См.
msiexec -?
2. Спасибо, Том. Однако, как мне вернуть обновленное значение параметра обратно в вызывающий код.
3. Идея состояла бы в том, чтобы попросить в запускаемом приложении передать значения свойств в MSIS. запускать их в тихом или скрытом режиме. Но теперь, когда вы говорите, что данные содержат пароль, это не такая уж хорошая идея, потому что он будет зарегистрирован в виде обычного текста.
Ответ №1:
Запишите его в реестр во время установки, а затем прочитайте его из расположения реестра в вызывающем процессе. Таким образом, вы также можете загрузить значение, используемое при запуске обновления или удаления этого установщика. См. Сообщение в блоге Remember me здесь, в котором показано, как сохранить значение в реестре и прочитать его в установщике.
Комментарии:
1. Спасибо @Brian Sutherland, однако для меня этот параметр представляет собой строку подключения к базе данных, которая содержит конфиденциальную информацию, такую как пароль, поэтому мы не можем использовать реестр здесь. Вы рекомендуете какую-либо другую альтернативу?
2. Вы должны иметь возможность кодировать его перед записью в реестр. Запишите закодированное значение в реестр и расшифруйте его, когда вам понадобится строка connections. Мы делаем это в нашем продукте для строки информации о подключении к БД. Запишите его закодированную версию в реестр, затем прочитайте ее и расшифруйте, когда нам нужно подключиться к базе данных.
3. Если цель состоит в том, чтобы скрыть информацию, которую некоторые программы используют, от других программ, запускаемых под учетной записью пользователя, API защиты данных ( DPAPI ) может значительно усложнить их работу.