我正在学习C#。我正在使用 vs code 和控制台应用程序研究 TraceSwitch 和 Microsoft 配置扩展的用法,但由于某种原因,相对路径不起作用。
这是代码:
...
// The error is here
const string APP_SETTINGS = @"appsettings.json";
if (File.Exists(APP_SETTINGS))
{
....
//rest of the code
....
}
else
{
Console.WriteLine("File doesn't exist");
}
唯一有效的方法是使用完整路径:
const string APP_SETTINGS = @"C:\Users\myUser\source\repos\cs11dotnet7\Chapter04-vscode\Instrumenting\appsettings.json";
但是为什么呢?我正在使用的书使用的是相对路径。我尝试使用相对路径:
./
/
.
\
但没有任何效果。
问题是程序是从路径“.bin\debug”运行的 et7.0”。为了解决这个问题,我做了以下更改:
我将以下代码添加到.csproj文件中以更新程序的属性:
<ItemGroup>
<None Update="appsettings.json">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
</ItemGroup>
此代码确保“appsettings.json”文件被复制到应用程序的输出目录。
通过执行此操作,文件现已复制到应用程序的工作目录,从而解决了问题。
我发现的另一个解决方案是手动将“json”文件移动到适当的目录。
谢谢您的帮助!