Когда вы запускаете приложение, работающий каталог становится вашим «активным каталогом»
Предположим, у вас есть
c:\myproject\bin\debug\myapp.exe
Когда вы запускаете приложение, вы пытаетесь найти
c:\myproject\bin\debug\foldername\somefile.someextension
то, что вы на самом деле хотите, может быть близко к
c:\myproject\data\daniorenio.xml
, поэтому вам нужно искать следующий каталог
c:\myproject\bin\debug\..\..\data\daniorenio.xml
Оператор ..
сообщает, что вы хотите вернуться в иерархию каталогов
Однако это предполагает, что ваш двоичный файл будет в более низкой ветви, чем ваш ресурс. Что я на самом деле делаю, так это копирую все, что мне абсолютно необходимо для выполнения, в специальный каталог, такой как
c:\myproject\RuntimeRequired
Таким образом, я могу выпустить событие после сборки, как это (В Project / Свойства / Build-Events / Post-Build)
copy / Y "$ (ProjectDir) RuntimeRequired *" "$ (OutDir)"