提问人:willian kennedy 提问时间:11/5/2023 更新时间:11/7/2023 访问量:38
在我的控制台应用上,相对路径不起作用,但为什么?
on my console app the relative path doesn't work, but why?
问:
我正在学习 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";
但是为什么?我正在使用的书是使用相对路径的。我尝试了相对路径:
./
/
.
\
但没有任何效果。
答:
0赞
willian kennedy
11/7/2023
#1
问题是程序从路径“.bin\debug\net7.0”运行。为了解决这个问题,我进行了以下更改:
我将以下代码添加到 .csproj 文件以更新程序的属性:
<ItemGroup>
<None Update="appsettings.json">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
</ItemGroup>
此代码确保将“appsettings.json”文件复制到应用程序的输出目录。
通过执行此操作,文件现在被复制到应用程序的工作目录,从而解决了问题。
我找到的另一个解决方案是手动将“json”文件移动到适当的目录。
谢谢你的帮助!
评论
"appsettings.json"
Path.GetFullPath