在我的控制台应用程序上,相对路径不起作用,但为什么?

问题描述 投票:0回答:1

我正在学习C#。我正在使用 vs code 和控制台应用程序研究 TraceSwitch 和 Microsoft 配置扩展的用法,但由于某种原因,相对路径不起作用。

项目结构 Project Structure

这是代码:

...
// 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";

但是为什么呢?我正在使用的书使用的是相对路径。我尝试使用相对路径:

./ / .
\

但没有任何效果。

c# file path trace
1个回答
0
投票

问题是程序是从路径“.bin\debug”运行的 et7.0”。为了解决这个问题,我做了以下更改:

我将以下代码添加到.csproj文件中以更新程序的属性:

    <ItemGroup>
       <None Update="appsettings.json">
         <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
       </None>  
   </ItemGroup>

此代码确保“appsettings.json”文件被复制到应用程序的输出目录。

通过执行此操作,文件现已复制到应用程序的工作目录,从而解决了问题。

我发现的另一个解决方案是手动将“json”文件移动到适当的目录。

谢谢您的帮助!

© www.soinside.com 2019 - 2024. All rights reserved.