В моем проекте у меня есть файл ресурсов с именем devices.json, который я поддерживаю вне проекта, чтобы обеспечить согласованность между различными проектами.Поэтому у меня есть только файл, добавленный в виде ссылки с:
<ItemGroup>
<Content Include="..\..\resources\devices.json" Link="devices.json">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
</ItemGroup>
Файл корректно копируется в папку сборки, но основные проекты asp.net, похоже, запускаются с корневым каталогом проекта, установленным в качестве рабочего каталога.Поэтому, если я попытаюсь прочитать файл с File.ReadAllText("devices.json")
, это вызовет исключение FileNotFound.
Есть ли способ скопировать файл devices.json в корневой каталог проекта при сборке, чтобы он был доступен без жесткого кодированияпути к выходному каталогу dev?
Я бы предпочел избежать написания строкового текста;
if(env.IsDevelopment())
{
text = File.ReadAllText("bin\\Debug\\netcoreapp2.1\\devices.json");
}
else
{
text = File.ReadAllText("bin\\Release\\netcoreapp2.1\\devices.json");
}
И даже если бы я это сделал, это прекратится, как только я опубликую проект с тех порвесь проект будет скопирован в каталог Publish, который затем будет работать как каталог CurrentWorking.
Есть предложения о том, как решить эту проблему?