我的 .net 核心发布的可执行文件给出了与 运行 代码不同的目录路径

My .net core published executable gives a different directory path than when running the code

我创建了一个处理 txt 文件的 dotnet 核心控制台。它需要位于与 txt 文件相同的文件夹中才能工作,因为它 运行 遍历所有 txt 文件,因此需要定义其当前目录。当我 运行 我在 Visual Studio 中的解决方案时,它给出了我的应用程序所在的正确目录,但是当我将它发布为独立控制台并从桌面 运行 例如,它给出错误的目录 (C:\users...\cue2n1g0.eiw)。 我正在使用以下行来定义控制台的当前目录。

 string currentFolder = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location);

在我的测试中,所有这些结果都是一样的,并返回了桌面的真实路径,因为我的 .net 5 控制台应用程序使用 VS 的“发布到文件夹”选项发布到那里:

Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location)
AppContext.BaseDirectory
Environment.CurrentDirectory