Connundrum Расположение файла C # - PullRequest
3 голосов
/ 19 февраля 2010

У меня есть XML-файл в приложении WCF, который описывает зависимости.Он загружается, когда конструктор служебного фасада работает и прекрасно работает при тестировании только приложения.Способ, которым настраивается наше отдельное приложение для веб-тестирования, является конечной точкой в ​​другом проекте (mvc) - поэтому относительные пути отличаются от файла XML, который нам нужно загрузить.Вопрос в том, как лучше всего загрузить этот файл из обоих проектов (чтобы при запуске одного первого проекта он загружал файл, но затем, когда эта dll загружалась во втором проекте, он все равно мог найти файл XML)

Ответы [ 3 ]

1 голос
/ 19 февраля 2010

Вы можете скопировать его в выходной каталог.Вы можете сделать это из Visual Studio, щелкнув правой кнопкой мыши файл, выбрав свойства и изменив «Копировать в выходной каталог» на «Копировать всегда».

Во время выполнения вы сможете найти файл в текущем каталоге воба проекта.

0 голосов
/ 19 февраля 2010

Я попытался «Скопировать в вывод», но безуспешно - по какой-то причине мой корневой путь не был там, где был путь вывода (о чем я раньше думал) ... Поэтому, чтобы абстрагироваться от головной боли других разработчиков, настраивающих этот проектЯ сделал это:

var _assembly = System.Reflection.Assembly.GetExecutingAssembly();
XDocument xdoc = XDocument.Load(new StreamReader(_assembly.GetManifestResourceStream("TheNamespace.Api.TheFile.xml")));

Что, конечно, требует, чтобы файл был встроенным ресурсом.

0 голосов
/ 19 февраля 2010

Попробуйте Server.MapPath

пример:

Server.MapPath (@ "~ \ App_Data \ menudata.xml")

тогда вы можете разместить свой файл в любом месте относительно корневого каталога вашего сайта / веб-сервиса.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...