Если вы хотите, чтобы файлы были установлены как файлы в целевой системе, сохраняя структуру проекта, вам необходимо прочитать их как элементы диска и создать установочный или простой zip-архив, который копирует эти файлы для восстановления структуры проекта при необходимости.
Для их чтения, если исполняемый файл создается в папке bin
, как по умолчанию для каждого проекта VS:
var lines = File.ReadAllLines(RootFolderPath + @"JsonRequests\Login.txt");
public string RootFolderPath
= Directory.GetParent
(
Path.GetDirectoryName(Application.ExecutablePath.ToLower()
.Replace("\\bin\\debug\\", "\\bin\\")
.Replace("\\bin\\release\\", "\\bin\\"))
).FullName
+ Path.DirectorySeparatorChar;
Мы удаляем папку отладки или выпуска, чтобы получить проект / приложение root путь для возможности чтения желаемого файла.
Если двоичный файл создается в другой папке, используйте его. Если в самом root, используйте его как есть. Если вы измените папку сохранения для выпуска и отладки, адаптируйте ее.
В WinForms все методы получения пути к исполняемому файлу возвращают путь, имеющий по умолчанию debug
или release
... но здесь нам нужен root путь к проекту или установленному приложению.
Здесь мы не устанавливаем копии файлов в исполняемую папку в обозревателе решений, но сохраняем структуру проекта на диске.
Вы также можете создать файл ресурсов для встраивания нужных файлов и использовать GetManifestResourceStream
или использовать ответ @FalcoAlexander для копирования файлов в исполняемую папку и чтения оттуда.