在 VS Code 中打开 C# 项目的本地文件时遇到问题

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

我用

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
文件?

  • 在 VS Code 中打开文件夹
  • 选择运行并调试

预期:

input.txt
的内容写入标准输出

观察到:

未处理的异常:System.IO.FileNotFoundException:找不到文件'C:\ Users \ user \ Code ewConsole4 in\调试 et9.0\input.txt'

c# visual-studio-code
1个回答
1
投票

当您使用调试器在 VS-Code 中运行项目时,就会出现问题,工作目录设置为 bin/Debug/netX.X/ 文件夹,而不是包含 Program.cs 文件的文件夹。该程序在工作目录中查找 input.txt,但由于它位于根项目文件夹中,因此会抛出 FileNotFoundException。

您需要确保在构建过程中将 input.txt 复制到输出目录,或者调整代码以在正确的位置找到该文件。

简单的解决方案:

  1. 在 VS Code 文件资源管理器中打开 input.txt 文件。
  2. 将以下行添加到您的 .csproj 文件中:

<ItemGroup>
    <None Update="input.txt">
        <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
    </None>
</ItemGroup>

  1. 保存 .csproj 文件,并使用 dotnet build 重建项目。
  2. 在 VS Code 中运行项目。现在应该找到 input.txt。
© www.soinside.com 2019 - 2024. All rights reserved.