Приложение командной строки для чтения из файла в C # - PullRequest
1 голос
/ 27 октября 2009

Я пишу небольшой инструмент командной строки для своих ежедневных задач, и у меня возникают проблемы при чтении из файла XML, который я использовал для конфигурации. Согласно примерам, я использую этот код для загрузки XML-файла для Linq-to-XML.

    XDocument doc = XDocument.Load("SearchSources.xml");

У меня проблемы с тем, что я "развертываю" свое приложение и XML в c: \ windows \ system32 для легкого доступа, он не будет работать при попытке запустить файл из приглашения RUN (например, запустить => TOOL -команды), потому что он ищет XML относительно того места, где я запускаю приложение.

Я мог бы, очевидно, изменить путь на полный путь, например c: \ windows \ system32 \ SearchSources.xml в коде, но это помешает мне запустить его через F5 в Visual Studio.

РЕДАКТИРОВАТЬ: я пытаюсь сделать это в коде, а не изменять файлы конфигурации при развертывании приложения в других местах.

Ответы [ 4 ]

7 голосов
/ 27 октября 2009

Использование:

String filePath = System.IO.Path.GetDirectoryName(
    System.Reflection.Assembly.GetExecutingAssembly().Location
) + @"\SearchSources.xml";

Это создаст путь к файлу на основе каталога исполняемого файла.

Или используя Path.Combine, как предложено:

String filePath = System.IO.Path.Combine(
    System.IO.Path.GetDirectoryName(
         System.Reflection.Assembly.GetExecutingAssembly().Location
    ),
    "SearchSources.xml"
);
1 голос
/ 27 октября 2009

Попробуйте сделать это:

var myAssembly = System.Reflection.Assembly.GetExecutingAssembly();
var file = Path.GetDirectoryName(myAssembly.Location) + "\\SearchSources.xml";

Это позволит получить местоположение текущего исполняемого файла, затем создать путь из папки исполняемого файла и имя файла, который вы ищете.

0 голосов
/ 27 октября 2009

Создайте файл настроек в Visual Studio (щелкните правой кнопкой мыши проект, добавьте -> новый элемент -> файл настроек). Там вы можете создать строку с именем пути к вашему файлу. В коде вы можете получить к нему доступ так:

Properties.Settings.Default.MyString

Это создаст XML-файл (app.config). Затем я бы сохранил путь и использовал его в своем приложении. Таким образом, при его развертывании вы можете просто открыть файл XML в любом текстовом редакторе и отредактировать путь.

0 голосов
/ 27 октября 2009

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

...