【发布时间】:2019-08-24 22:58:06
【问题描述】:
我在 Visual Studio 中有一个非常简单的 .NET 控制台应用程序。我正在尝试将一些单词写入文本文件。
using (StreamWriter file = File.AppendText("log1.txt"))
{
file.WriteLine("Hello from the text file");
}
如果文件不存在,应用程序会在自动生成的文件夹 bin/Debug 中创建它。 有没有办法在我有 .csproj 文件的项目目录中创建这个文件?
更重要的是,在实际应用程序中,当您处理文件时,您会将它们保存在 bin/Debug 中吗?这就是 .NET 首先在那里创建它们的原因?
【问题讨论】:
-
在实际场景中,您发布应用程序,获取内容(一堆 dll 文件和其他内容),然后将它们部署到您想要的任何位置。这意味着您将没有 bin 或 debug 文件夹。您现在尝试执行的操作仅在使用 Visual Studio 或使用
dotnet run调试应用程序时有效。 -
文件在 bin/debug 中创建,因为这是当前工作目录。当您构建解决方案时,您的可执行文件和 dll 会在调试模式下部署
-
请记住:在 Windows 上,一个进程有一个启动目录(可执行文件所在的位置)和一个工作目录。默认情况下,这些是相同的,但这取决于您如何启动该过程。如果没有给出路径,这种情况下的文件名将在工作目录中解析(程序集解析有其自己的机制)。您手头还有一些其他特殊文件夹,但您需要明确使用它们。
标签: c# .net visual-studio