Моему приложению теперь нужно создавать, а затем записывать файлы в временный каталог, который находится внутри установленного каталога. msi помещает его в Program Files\ по умолчанию. Я не подумал о том, что произойдет, если какая-нибудь бедная душа запустит его, используя не административную учетную запись.
Description: Access to the path 'Temp' is denied.
StackTrace: at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)
at System.IO.Directory.InternalCreateDirectory(String fullPath, String path, Object dirSecurityObj)
at System.IO.Directory.CreateDirectory(String path)
Я посмотрел на своем компьютере, и по умолчанию любая учетная запись в группе пользователей не имеет прав на запись почти для каждой папки. Наверное, я невежда, потому что всегда запускаю все свои вещи от имени администратора, даже не задумываясь об этом.
В любом случае, есть ли способ:
1: Закодировать создание/запись папок так, чтобы временно поднять права программы до администратора, если она не запущена от имени администратора (я использую C#)
2: Настроить программу установки на установку прав на папки с "полным контролем" для всех в группе "Пользователи" (используя windows setup project msis)
Спасибо!