我用
dotnet new console
制作了最简单的程序。
Program.cs
包含一行:
Console.WriteLine(File.ReadAllText("input.txt").ToString());
input.txt
与 Program.cs
存在于同一文件夹中,并包含一行:
Hello, world!
当我从控制台窗口执行
dotnet run
时,我得到了所需的结果:input.txt
的内容被写入 stdout。
但是,当我在 VS Code 中运行关联项目时,出现以下“未处理的异常”:
System.IO.FileNotFoundException:找不到文件“C:\Users\user\Code” ewConsole4 in\调试 et9.0\input.txt'
如何让 VS Code 从
input.txt
存在的同一文件夹中读取 program.cs
文件?
预期:
input.txt
的内容写入标准输出
观察到:
未处理的异常:System.IO.FileNotFoundException:找不到文件'C:\ Users \ user \ Code ewConsole4 in\调试 et9.0\input.txt'
当您使用调试器在 VS-Code 中运行项目时,就会出现问题,工作目录设置为 bin/Debug/netX.X/ 文件夹,而不是包含 Program.cs 文件的文件夹。该程序在工作目录中查找 input.txt,但由于它位于根项目文件夹中,因此会抛出 FileNotFoundException。
您需要确保在构建过程中将 input.txt 复制到输出目录,或者调整代码以在正确的位置找到该文件。
简单的解决方案:
<ItemGroup>
<None Update="input.txt">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
</ItemGroup>