Inno Setup:检查是否安装了OpenDCL,否则安装它

时间:2016-01-14 16:20:57

标签: inno-setup

如果安装了OpenDCL,我希望我的脚本检查。如果不是,则应安装它。

这是代码:

来源:

[Setup]
AppId={{7EED6191-0CC5-4D95-B28B-D5AB92F09685}
AppName={#MyAppName}
AppVersion={#MyAppVersion}
AppPublisher={#MyAppPublisher}
DefaultDirName=C:\Cobiax\{#MyAppName}
DisableDirPage=yes
UsePreviousAppDir=yes
AppPublisherURL={#MyAppURL}
AppSupportURL={#MyAppURL}
AppUpdatesURL={#MyAppURL}
DefaultGroupName={#MyAppName}
InfoAfterFile=C:\Cobiax\Sorgenti\Cobiax Plan\info.txt
OutputBaseFilename=CobiaxPlan v1.0      
Compression=lzma
SolidCompression=yes
PrivilegesRequired=admin                                    

[UninstallDelete]
Type: filesandordirs; Name: "C:\Cobiax\"

[Files]
Source: C:\Cobiax\Sorgenti\OpenDCL.Runtime.8.0.1.0.msi; DestDir: C:\Cobiax\Cobiax Plan\; \
    Flags: deleteafterinstall

[Run]
Filename: msiexec.exe; Parameters: /i {app}\OpenDCL.Runtime.8.0.1.0.msi


[UninstallRun]
Filename: msiexec.exe; Parameters: /x {app}\OpenDCL.Runtime.8.0.1.0.msi

[Icons]
Name: "{group}\{cm:UninstallProgram,{#MyAppName}}"; Filename: "{uninstallexe}"

非常感谢,丹尼斯

聚苯乙烯。是否可以隐藏那个闪屏?

windows installer

1 个答案:

答案 0 :(得分:1)

  1. OpenDCL.Runtime.8.0.1.0.msi[Files]部分中的[Run]路径不同。将程序包安装到固定路径C:\Cobiax\Cobiax Plan,同时从用户定义的安装路径{app}运行它。由于该文件是临时文件,您可能希望从{tmp}安装并运行它。

  2. 在任何情况下,两个路径都可能包含空格(Cobiax PlanProgram Files)。所以你运行

    msiexec.exe /i C:\Program Files\MyAppName\OpenDCL.Runtime.8.0.1.0.msi
    

    那是错的。这就是你获得msiexec使用屏幕的原因。

    如果路径包含空格,则需要将其括在引号中:

    msiexec.exe /i "C:\Program Files\MyAppName\OpenDCL.Runtime.8.0.1.0.msi"
    
  3. 正确的代码是:

    [Files]
    Source: C:\Cobiax\Sorgenti\OpenDCL.Runtime.8.0.1.0.msi; DestDir: {tmp}; \
        Flags: deleteafterinstall
    
    [Run]
    Filename: msiexec.exe; Parameters: "/i ""{tmp}\OpenDCL.Runtime.8.0.1.0.msi"""