Vb.net 创建exe文件

Vb.net 创建exe文件,vb.net,exe,Vb.net,Exe,我正在尝试创建一个exe文件,可以分发给其他人,但我想知道是否有人可以向我解释,如果我在程序中写入文本文件,然后创建一个exe文件,那么当其他人下载应用程序时,这会崩溃,因为我指向的是c:user\source\programApp\repos\textfile.txt 有没有一种方法可以在程序中通用地声明textfile.txt?在代码中,您应该避免将文件写入绝对路径。您的用户通常不太可能在其系统上已经存在相同的路径,并且如果路径不存在,您无法确保您的程序将以足够的权限来创建该路径 相反,您有

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


有没有一种方法可以在程序中通用地声明textfile.txt?

在代码中,您应该避免将文件写入绝对路径。您的用户通常不太可能在其系统上已经存在相同的路径,并且如果路径不存在,您无法确保您的程序将以足够的权限来创建该路径

相反,您有三种选择:

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

  • 在所有情况下,您都应该将文件写入一个
    Try。。捕获
    ,以便在运行exe时没有足够的权限将文件写入指定位置时,程序不会崩溃。

    在代码中,应避免将文件写入绝对路径。您的用户通常不太可能在其系统上已经存在相同的路径,并且如果路径不存在,您无法确保您的程序将以足够的权限来创建该路径

    相反,您有三种选择:

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

  • 在所有情况下,您都应该将文件写入一个
    Try。。捕获
    ,以便在运行exe时没有足够的权限将文件写入指定位置时,程序不会崩溃。

    您几乎不应该硬编码文件或文件夹路径。您应该始终使用在运行时解析的标准路径。您可以使用
    Environment.GetFolderPath
    My.Computer.FileSystem.specialDirectory
    获取各种标准Windows文件夹的路径,包括用户的文档文件夹。假设您正在创建Windows窗体或WPF应用程序,您可以使用
    Application.StartupPath
    获取运行当前应用程序的文件夹,然后使用
    Path.Combine
    My.Computer.FileSystem.CombinePath
    从文件夹创建文件或子文件夹路径


    我应该指出,普通用户没有在Program Files文件夹下写入的权限,因此写入应用程序文件夹通常是不允许的。

    您几乎不应该硬编码文件或文件夹路径。您应该始终使用在运行时解析的标准路径。您可以使用
    Environment.GetFolderPath
    My.Computer.FileSystem.specialDirectory
    获取各种标准Windows文件夹的路径,包括用户的文档文件夹。假设您正在创建Windows窗体或WPF应用程序,您可以使用
    Application.StartupPath
    获取运行当前应用程序的文件夹,然后使用
    Path.Combine
    My.Computer.FileSystem.CombinePath
    从文件夹创建文件或子文件夹路径

    我应该指出,普通用户没有在ProgramFiles文件夹下写入的权限,因此写入应用程序文件夹通常是不允许的