c# - Создать папку и файл в профиле текущего пользователя из профиля администратора




windows wix (2)

Наш клиент позволяет устанавливать приложения только после входа в систему с правами администратора. Приложение, которое необходимо установить, должно быть установлено для текущего пользователя машины. Приложение устанавливается нормально, моя проблема возникает, когда мне нужно сбросить файл конфигурации в папку appdata / user profile пользователя. Поскольку это то, где они хотят, в настоящее время конфигурация сбрасывается на профиль администратора при установке. Как мне пройти через это, есть ли способ проверить установку, если есть другие профили и, возможно, написать в них, но это грязно.


Вы можете сделать это с помощью функции восстановления. Общая картина состоит в том, что файл был установлен для одного пользователя во время установки в месте профиля пользователя, и при установке для каждой системы это будет означать, что файл будет отсутствовать, когда другой пользователь входит в систему, чтобы использовать приложение. Это зависит от структуры компонентов MSI, функций и ярлыков, но запуск приложения с объявленным ярлыком может привести к установке отсутствующего файла с самовосстановлением. Очевидно, что для этого требуется, чтобы исходный MSI оставался доступным.

Однако самый безопасный способ установить файл для любого нового пользователя - это явно вызвать MsiProvideComponent передав MsiProvideComponent MSI, имя компонента, идентификатор компонента и т. Д., Как описано в документации. Как сказано в документации, компонент будет установлен, если он отсутствует, снова требуя наличия исходного MSI.

Эта функция относится к случаю, когда существуют учетные записи пользователей, которые еще не были созданы, поэтому очевидно, что вы еще не можете помещать файлы в папки их профилей.

Будет ли это лучший подход по сравнению с другими, будет зависеть от конкретных деталей приложения.


Не создавайте файл конфигурации при установке, проверьте и посмотрите, существует ли он при запуске программы, если нет, то создайте его в папке профиля работающих пользователей. Если он существует, используйте данные в нем и продолжайте.







profiles