2016-11-10 7 views
0

У меня есть базовый проект Dotnet что я важные данные образца в из XML.Невозможно загрузить данные примера в ядре приложения Dotnet при работе в отладчике, но прекрасно работает в терминале

XDocument sampleData = XDocument.Load(@"seed/Import_sampleData.xml"); 

В терминале, когда я выполнить его с помощью команды Dotnet запуска он загружает данные просто отлично, как и ожидалось, но в Visual Studio кодекса я получаю разные результаты, когда я пытаюсь запустить отладчик:

Unhandled Exception: System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. ---> System.IO.FileNotFoundException: Could not find file '/Users/Chris/Google Drive/Repos/project/project.api/seed/Import_sampleData.xml'. 

Я не уверен, что проблема в том, что я думал, что отладчик также использует dotnet run, так почему же он будет вести себя по-другому?

Как предложено здесь мои настройки copyToOutput в моей project.json. Файл XML теперь копируется в папку бен на сборке, но по-прежнему возвращает файл не найден исключение:

"copyToOutput": { 
    "include": [ 
    "config.json", 
    "Certificate.pfx", 
    "seed\\"   
    ] 
} 
+0

Я думаю, что когда вы запускаете его из визуальной студии, он использует двоичную папку в качестве базовой папки, когда вы запускаете ее с консоли, она использует папку проекта. Вы пытались скопировать файл в каталог сборки (используя project.json 'copyToOutput'? – Tseng

+0

Я добавил каталог для copyToOutput, и когда сборка проекта, теперь я могу видеть файлы xml в подпапке bin, но я все еще получаю то же поведение. Он не может найти файл – chris

ответ

0

я понял это ... в основном у меня есть 2 проектов библиотеки, а затем мой апи проект все под один подпапок , Таким образом, отладчик запускался в корневой папке рабочего пространства, которая содержит три проекта. Я изменил cwd для запуска в моем проекте api, так как другие проекты втягиваются в него через зависимости, а затем сразу же обнаруживают файлы xml в моем проекте.