С # опубликовать exe приложения Windows Form с данными папки
Я должен опубликовать приложение формы Windows на С #. Проблема в том, что у меня есть папка с именем "dati" в папке проекта.
В коде, когда я пытаюсь читать из папки, я использую эту инструкцию
string projectDirectory = Directory.GetParent(Environment.CurrentDirectory).Parent.FullName;
и когда я пытаюсь прочитать xls внутри этой папки, у меня есть эта инструкция
string path = projectDirectory + "\\dati\\dati.xlsx";
string constr = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + path + ";Extended Properties=\"Excel 12.0 Xml;HDR=NO;\"";
При отладке все работает отлично, даже если я запускаю.exe внутри папки bin/Debug или bin/Release. Когда я публикую приложение и помещаю его в другую папку, например C:\ProjectPublished, я получаю эту ошибку, потому что оно пытается прочитать папку dati с другого пути.
Что я должен сделать? благодаря
2 ответа
Самый простой способ работы с файлами данных - включить их в проект как элемент содержимого. Щелкните правой кнопкой мыши файл *.xlsx в обозревателе решений и установите для действия сборки значение " Содержимое", а для " Копировать в выходной каталог" значение " Всегда". Это заставит механизм сборки включить файл данных в каталог /bin. Затем вам может потребоваться настроить механизм развертывания, чтобы включить этот файл в развертываемый пакет. Например, если вы используете ClickOnce, вам может потребоваться включить этот файл на вкладку "Опубликовать" вашего проекта.
Использовать этот:
string projectDirectory = AppDomain.CurrentDomain.BaseDirectory ;
Это даст вам каталог, в котором находится ваш исполняемый файл.