我想首先将现有文件“我的程序旧”重命名为“我的程序v2”,但前提是“我的程序v2”还不存在。
然后我想将“我的程序”重命名为“我的程序旧”,但前提是“我的程序旧”不存在。
然后我想从安装程序安装‘我的程序',但前提是’我的程序‘还不存在。
我将非常感谢任何指导!
我想尝试一下这样的东西。在安装过程开始前发生的curstepchanged
事件的ssinstall
阶段中,只需使用fileexists
函数检查文件是否不存在,如果不存在,则只需调用renamefile
函数,如果源文件不存在,该函数将静默失败,因此您不需要关心源文件是否存在。在[Files]
部分中,您可以使用OnlyIfDoesNtexist
标志来满足上一个需求。如果需要,可以遵循此脚本的注释版本
:
[Setup]
AppName=My Program
AppVersion=1.5
DefaultDirName={pf}\My Program
[Files]
Source: "My program"; DestDir: "{app}"; Flags: onlyifdoesntexist
[Code]
function GetFileName(const AFileName: string): string;
begin
Result := ExpandConstant('{app}\' + AFileName);
end;
procedure CurStepChanged(CurStep: TSetupStep);
begin
if (CurStep = ssInstall) then
begin
if not FileExists(GetFileName('My program v2')) then
RenameFile(GetFileName('My program old'), GetFileName('My program v2'));
if not FileExists(GetFileName('My program old')) then
RenameFile(GetFileName('My program'), GetFileName('My program old'));
end;
end;
我有Inno安装程序(在我之前写的),它提取了一组VSTO文件并开始安装VSTO MS Office插件。它有一个问题,当将VSTO文件提取到临时文件夹并启动时,它会立即显示完成按钮。如果用户单击它,临时文件将被删除,并在中开始实际安装VSTO插件,然后导致“文件未找到”错误。我应该解决这个问题(理想情况下,只有当它生成的完成执行时,Inno安装程序中的完成按钮才会出现)。 VSTO包本身(“应用
在我的< code>[Files]部分中,我有以下内容: 在部分我有: 最后,在部分,我有: 现在,在这个版本的程序中,我已经将这两个DLL文件的功能合并到另一组DLL文件中: 因此, DLL 文件。现在,我知道如果它们存在,我可以简单地删除它们: 但据我所知,这不会像 中那样触发 DLL 文件的注销。 我该怎么做?在安装过程中删除并注销DLL文件(如果存在)?
在安装过程中,我添加了带有文件的文件夹: 来源:{#DBPath};德迪尔:“{app}\DataBase”; 我希望在卸载中,inno-set会询问用户是否 删除文件。 我该怎么做 谢谢,阿维。
根据文档,Inno Setup使用AppName或AppId允许您创建一个更新程序,该程序将自动将其文件放在用户安装初始应用程序的同一路径中。 我需要能够根据AppId确定Inno Setup将文件安装到哪里,但不是从Inno Setup中。例如,我需要能够从Python脚本中确定这一点。 一个用例:修补安装程序位置中的文件。打包整个安装程序只是为了有条件地添加或编辑文本文件中的一行是矫枉过正的。
问题内容: 我想更改为。 问题答案: 用途