Открытие XML-файла, расположенного в дополнительной папке

В VSTO дополнение Excel код:

Dim XMLDoc As XElement = XElement.Load("XMLFile1.xml")

генерирует a FileNotFound ошибка с сообщением ("Не удалось найти файл 'C:\Users\doug\Documents\XMLFile1.xml'".) Это смотрит в папке My Documents, но XML-файл расположен в папке VS Projects для того проекта. Я установил свойство "Copy to Output Directory" XML-файла для "Копирования всегда". Когда я изменяю код для включения полного пути в XML-файл работы кода.

Кроме того, если я включаю вышеупомянутый код в Windows Console или другой тип проекта, он работает правильно. Я только получаю его в Excel Addin. Вышеупомянутое верно для VSTO 2008/Excel 2003 и VSTO 2010/Excel 2010.

5
задан JimmyPena 22 July 2012 в 16:04
поделиться

1 ответ

При использовании относительного пути текущий каталог ( Environment.CurrentDirectory ) используется для разрешения этого пути. В случае надстройки VSTO автоматически устанавливается папка с документами пользователя. Однако для консольного приложения это значение устанавливается в ту же папку, что и исполняемый файл, и поэтому вы испытываете разное поведение.

Если ваш файл будет развернут в той же папке, что и ваша сборка надстройки VSTO, вы можете использовать ( AppDomain.CurrentDomain.BaseDirectory ) для создания полного пути к файлу.

Пример в C #:

string filename = "XMLFile1.xml";

string path = Path.Combine(
    AppDomain.CurrentDomain.BaseDirectory,
    filename);

XElement.Load(path);
13
ответ дан 18 December 2019 в 13:13
поделиться
Другие вопросы по тегам:

Похожие вопросы: