Environment.SpecialFolder.CommonApplicationData возвращает папку Program Files/AppC#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 Environment.SpecialFolder.CommonApplicationData возвращает папку Program Files/App

Сообщение Anonymous »

Я разработал приложение WPF (.NET 4.5), которое хранит некоторые файлы конфигурации в папке CommonApplicationData.
Для этой цели я использую следующее:

Код: Выделить всё

string AppDataFolder = Environment.GetFolderPath(Environment.SpecialFolder.CommonApplicationData);
Кроме того, я добавляю Название компании/Папку продукта к этому пути, и в 99,9% все работает. Приложение умеет писать туда конфиг и читать его. Приложение в основном используется на компьютерах Win7 и Win8, но я получил от клиента сообщение о том, что на одном компьютере есть некоторые ошибки (Windows 7 Pro, .NET 4.5).
Когда я пытался отладить проблема, я обнаружил в журнале следующее:

System.IO.DirectoryNotFoundException: не удалось найти часть пути 'C:\Program Files (x86)\CompanyName\App\X\Y\Z\settings.config'.

Где:

X\Y\Z\settings.config

должен быть частью C:\ProgramData, но каким-то образом приложение возвращает папку, в которой установлено приложение (Программные файлы). Я пытался повторить это на нескольких машинах и в разных средах, но безуспешно.
Мои вопросы:
Возможно ли это? изменить

Код: Выделить всё

Environment.SpecialFolder.CommonApplicationData
[/b] местоположение в Windows? Это какая-то проблема безопасности (групповая политика)? Возможно, кто-то каким-то образом изменил путь.
Я не знаю, почему приложение в этом случае возвращает другую папку, чем C:\ProgramData.
Если возможно, где я могу проверить значение Environment.SpecialFolder.CommonApplicationData, кроме как программно?
Есть какие-нибудь советы или решения?
Я всегда могу сделать некоторые проверки и попытаться посмотрите, неправильный ли путь, и исправьте его вручную, но это не очень хорошо!
Я всегда думал, что это использование Environment.GetFolderPath(Environment.SpecialFolder.CommonApplicationData) предоставит мне нужную папку независимо от версии ОС.
Я попробовал запустить приложение с полными правами администратора (плюс запускать от имени администратора), проблема та же. Приложение получает неправильный путь от Environment.SpecialFolder.CommonApplicationData.
Заранее спасибо!

Подробнее здесь: https://stackoverflow.com/questions/309 ... s-app-fold
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • C# Environment.getFolderPath для Environment.SpecialFolder.ApplicationData не уважает дом
    Anonymous » » в форуме C#
    0 Ответы
    27 Просмотры
    Последнее сообщение Anonymous
  • C# Environment.getFolderPath для Environment.SpecialFolder.ApplicationData не уважает дом
    Anonymous » » в форуме C#
    0 Ответы
    22 Просмотры
    Последнее сообщение Anonymous
  • Проблема с .Net в Windows: Environment.SpecialFolder.ApplicationData
    Anonymous » » в форуме C#
    0 Ответы
    15 Просмотры
    Последнее сообщение Anonymous
  • LoadFrom не загружается из модуля: C: \ Program Files \ Dotnet \ Shared \ Microsoft.aspnetCore.App
    Anonymous » » в форуме C#
    0 Ответы
    2 Просмотры
    Последнее сообщение Anonymous
  • LoadFrom не загружается из модуля: C: \ Program Files \ Dotnet \ Shared \ Microsoft.aspnetCore.App
    Anonymous » » в форуме C#
    0 Ответы
    5 Просмотры
    Последнее сообщение Anonymous

Вернуться в «C#»