创建exe文件

Creating exe file

我正在尝试创建一个可以分发给其他人的 exe 文件,但我想知道是否有人可以向我解释一下,如果我在我的程序中写入一个文本文件,然后创建一个 exe,那么当其他人使用时,是否会崩溃下载应用程序,因为我指向 c:user\source\programApp\repos\textfile.txt

有没有办法在程序中通用声明 textfile.txt?

在您的代码中,您应该避免将文件写入绝对路径。您的用户通常不太可能在他们的系统上已经存在相同的路径,并且您不能确定您的程序 运行 具有足够的权限来创建路径,如果它不存在的话。

相反,您有三个选择:

  1. 在本地编写 textfile.txt,即在与 exe 所在的同一文件夹中。
  2. 将您的 textfile.txt 写入相对路径,在写入之前始终小心检查该路径是否存在(并首先尝试创建它)
  3. 将您的 textfile.txt 写入标准用户文件夹之一(或您创建的子目录,如有必要)。为此,您使用 System.Environment.GetFolderPath 向其传递相关参数,例如 Environment.SpecialFolder.MyDocuments

在所有情况下,如果 exe 运行 没有足够的权限将文件写入指定位置,您应该将写入的文件包含在 Try .. Catch 中,这样您的程序就不会崩溃。

您绝不能对文件或文件夹路径进行硬编码。您应该始终使用在 运行 时间解析的标准路径。您可以使用 Environment.GetFolderPathMy.Computer.FileSystem.SpecialDirectories 获取各种标准 Windows 文件夹的路径,包括用户的文档文件夹。假设您正在创建 Windows Forms 或 WPF 应用程序,您可以使用 Application.StartupPath 获取当前应用程序 运行 来自的文件夹,然后使用它们创建文件或子文件夹路径Path.CombineMy.Computer.FileSystem.CombinePath.

需要说明的是普通用户是没有权限在Program Files文件夹下写的,所以写到application文件夹一般是不行的。