我的程序在通过 inno 安装程序编译器创建安装程序后将文件保存在目录(应用程序目录内)上时停止?



在我的项目中,我有说明将Excel文件保存在项目bin\debug目录(bin\debug\fichiers)内名为"Ficheirs"的文件夹中,使用:Directory.GetCurrentDirectory() + "\Fichiers"将路径设置为该路径,它在创建安装程序之前运行良好 但是在使用inno Setup Compiler创建安装程序后,并最终在创建安装程序时添加文件夹" Ficheirs",我的程序不起作用 如何解决这个问题,以便我的程序继续将我的 excel 文件保存在该文件夹中?

Directory.GetCurrentDirectory() + "Fichiers"

这是一个非常不可靠的函数来设置目录的路径。 无需测试,应用程序可以在您请求GetCurrentDirectory()时在不同的目录中工作。

例如,在您运行GetCurrentDirectory()时设置/应用程序的工作目录

  • 应用\
  • 应用\箱\
  • 应用\bin\调试\

GetCurrentDirectory()+ "Fichiers"回报

  • D:\Programs\App\Fichiers
  • D:\Programs\App\bin\Fichiers
  • D:\Programs\App\bin\debug\Fichiers

您应该强制安装所有需要的目录 下面是 [Dirs] 部分的示例:

[Dirs]
Name: "{app}bin"
Name: "{app}bindebug"
Name: "{app}bindebugFichiers"

在 C#
编写之前进行测试

try 
{
// Set the current directory.
string target = Application.StartupPath + "\bin\debug\Fichiers";
if (!Directory.Exists(target)) 
{
Directory.CreateDirectory(target);
}
// Change the current directory.
Environment.CurrentDirectory = (target);
..............

设置是

[Code]
var
excelPath : String;
..............
excelPath := ExpandConstant('{app}bindebugFichiers');

相关内容

最新更新