1

С приложением Windows Forms (или WPF), если я создаю установщик с помощью команды Publish (ClickOnce), установщик создает папку приложения с исполняемым и конфигурационным файлом в C:\Users\[UserName]\AppData\. С другой стороны, если установщик создается через программу установки (MSI), установленное приложение будет находиться в C:\Program Files\My Company\My App как с исполняемым файлом, так и с конфигурационным файлом. Из двух я выбрал путь MSI.Где хранятся настройки моего приложения?

Мое предположение заключалось в том, что параметры приложения (как и в свойствах проекта> вкладка «Параметры») считываются из/записываются в файл конфигурации, который находится в Program Files, который остается там, даже если я удалю программу или обновил ее с помощью новой версии , так что настройки пользователя не теряются. Но, похоже, это не так. Даже если существует версия файла программных файлов конфигурационного файла, установленное приложение, похоже, читает/записывает в C:\Users\[UserName]\AppData\, как если бы это было приложение ClickOnce. Что мне не хватает?

(Это профиль клиента VS2010 + Win7 + C# + .NET 4.0, хотя я не думаю, что у этих вещей есть что-то делать).

ответ

0

Надеюсь, я правильно понимаю ваш вопрос.

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

При первом запуске приложения в эту папку были скопированы исходные настройки приложения из файла app.config. Ваше приложение будет автоматически работать над этим вновь созданным файлом.

Это делается, потому что это риск, позволяющий пользователю работать с «глобальными» настройками в вашей папке Program Files, с которой будут работать все ваши пользователи. Подумайте, что произойдет, если у пользователя есть только разрешения на чтение, но не для записи в этот файл.

+0

Имеет смысл. Благодарю. – dotNET

Смежные вопросы