Member 13458729 Ответов: 3

C# доступ запрещен к пути в приложении windows


Я создал приложение для Windows с использованием c# в Windows 10.все работало нормально, поэтому я создал проект Мастера установки, а затем построил его. После установки приложения я могу открыть его правильно, но когда я пытаюсь выполнить какое-то действие, которое записывает текстовый файл(с целью ведения журнала), он выходит из строя, вызывая у меня следующее сообщение об ошибке:
Доступ к пути 'C:\Program файлы (x86)\MSProgram\MSProgram\ErrorLog.вход в систему запрещен.

Что я уже пробовал:

Без понятия. Нужна ваша помощь, чтобы получить решение

3 Ответов

Рейтинг:
1

Richard MacCutchan

Папки на сайте C:\Program файлы (x86) предназначены для использования системой. Вы никогда не должны пытаться хранить там данные. Вы должны использовать одну из папок данных пользователей, таких как AppData/Local или AppData/Roaming, для любых данных, которые должны быть созданы или прочитаны вашим приложением. Видеть Приложение.Свойство LocalUserAppDataPath (System.Окна.Формы) | Microsoft Docs[^] для того, как получить путь.


Рейтинг:
1

phil.o

Вы больше не можете использовать папку Program Files для хранения изменяемых файлов по соображениям безопасности.

Вместо этого вы можете использовать папку ProgramData или папку AppData каталога профиля пользователя для файлов, которые будут изменены вашим приложением. Первый вариант больше подходит для данных области применения, а второй-для данных области пользователя.


Member 13458729

я просто хочу исключить отладку.вход из программы установки

phil.o

Проблема не в настройке. Он находится в вашем коде, полагаясь на файл, который он ожидает найти в папке Program Files. Измените код так, чтобы этот файл был помещен в один из каталогов, о которых я говорил, и вы избавитесь от этой проблемы.

Рейтинг:
0

Garth J Lancaster

Цитата:
'C:\Program файлы (x86)\MSProgram\MSProgram\ErrorLog.log'
это не самый лучший путь для входа в систему - обычно он защищен и правильно делает, что делать, если кто-то переписал файл ОС в [Program Files (x86)] ??

Вы "можете" быть в состоянии "требовать" Admin privs и делать это, повышая свою прогу, но только потому, что вы можете, это не значит, что вы должны .. мастер установки должен получить не "системный" /OS путь и использовать его в качестве элемента конфигурации, возможно, по умолчанию для среды.GetFolderPath(Environment.Специальная папка.Мои документы)