Преобразование winform из XP в Vista - Properties.Settings - PullRequest
0 голосов
/ 24 ноября 2008

Я обновляю приложение с множеством различных файлов настроек с XP на Vista и меняю расположение файлов для использования

Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData)

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

Мне сказали, что Microsoft откажется от поддержки виртуализации операций записи в Program Files, и это нормально, поэтому я обновляю ...

Может ли оператор, подобный приведенному ниже, вызвать ошибку во время выполнения или его необходимо обрабатывать определенным образом в Vista?

Properties.Settings.Default.Properties["ConnectionString"].DefaultValue = config.ConnectionString;

Я думаю, что он назначит значения во время выполнения и не сможет сохранить значения в пространстве Program Files и, вероятно, запишет их в VirtualStore? Сейчас это будет работать, но когда виртуализация будет удалена, она все равно будет работать?

Я не уверен и не хочу продолжать, не спросив сначала. Я мог быть полностью выключен. Любая помощь или комментарии будут оценены. Спасибо.

1 Ответ

0 голосов
/ 24 ноября 2008

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

Вот ссылка от кого-то, кто использовал App.Config (запись) в Vista. Говорят, что не стоит пытаться писать в App.Config. Вот 2 предложения, которые он предлагает:

  • используйте файл .settings, он дает вам строго типизированные настройки и область действия пользователя / приложения для каждого свойства, уведомление о сохранении и изменении свойства

  • зарегистрируйте раздел AppSettings под другим именем (скажем, "userSettings") в app.config и укажите для него allowExeDefinition = "MachineToRoamingUser". Это позволяет сохранить существующий синтаксис.

...