Environment.GetFolderPath (… CommonApplicationData), возвращающий пустую строку в XP и Server 2003 - PullRequest
3 голосов
/ 11 августа 2011

Кажется, это произошло совершенно случайно. В одну минуту программа работала, затем я внес некоторые изменения (совершенно не относящиеся к этой части программы, все, что я фактически изменил, это один из встроенных ресурсов проекта), и следующее свойство теперь возвращает просто "\".

public static string ProgramDataDir
{
    //this has always worked on all windows OSes before, but all of a sudden, not so
    //get { return Environment.GetEnvironmentVariable("ProgramData") + @"\"; }

    //I've tried changing it to this, and this doesn't work either - same results
    get { return Environment.GetFolderPath(Environment.SpecialFolder.CommonApplicationData) + @"\"; }
}

Это свойство должно и всегда возвращало C:\Documents and Settings\All Users\Application Data в XP и Server 2003. Это больше не работает на виртуальной машине 2003 и виртуальной машине XP, которые работают на одном виртуальном хосте. Хост не влияет на эти переменные среды, не так ли? Может ли быть проблема с моим виртуальным хостом? К сожалению, у меня нет доступного отдельного компьютера с сервером 2003 или XP, на котором я мог бы установить это программное обеспечение и запустить тесты.

Примечание: я понимаю, что эта часть не является вопросом программирования как таковым, скорее является проблемой сервера, но из-за характера остальной части вопроса я чувствую, что она по-прежнему подходит ТАК, пожалуйста, исправьте меня, если я ' м неправильно.

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

Приложение работает как служба Windows, поэтому использование каких-либо специальных папок пользователя не подходит для этого приложения.

1 Ответ

0 голосов
/ 12 ноября 2012

Существует ли этот путь на вашей машине или он был заменен другим способом? Согласно документации для Environment.GetFolderPath :

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

Может ли это быть так для вас?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...