Это всего лишь догадка, но случайно вы запускаете этот код из потока MTA?
Я знаю, что некоторые вызовы Windows Shell API завершатся неудачно, если они не выполняютсяв СТА.По правде говоря, я когда-либо сталкивался с этой проблемой, когда делал вещи PInvoke, но этот вызов нативной функции SHGetFolderPath
в вашей трассировке стека говорит мне, что это может быть просто.
Итак ...чтобы проверить мою теорию, можете ли вы попробовать вызвать Environment.GetFolderPath(Environment.SpecialFolder.Personal)
из Main
в простом консольном приложении и посмотреть, успешно ли этот вызов?
Если он преуспел в простом фиктивном приложении, то, возможно, MTA является причинойсбой в вашем приложении.
Если в простом фиктивном приложении произойдет сбой, возможно, ваша машина испорчена или, возможно, просто профиль пользователя.Я попытался бы создать нового пользователя на компьютере, войти в свою учетную запись и попробовать оттуда.
Редактировать: Пытаться еще несколько направлений:
- Смотрите прямона
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders
в Regedit и проверьте, все ли выглядит нормально. - Проверьте Event Viewer, если другие вещи повреждены на машине.
- Перезагрузите машину ...?:)
- Переустановите .NET Framework