我在Inno设置中开发安装文件。 当用户选择' custom'
时,它有3个不同的可选组件可供安装它工作正常,但是当传递/SILENT
参数时,没有安装任何组件。我想是因为没有检查任何组件。
...这里是相关的代码片段:
[Types]
Name: custom; Description: {cm:instCustom}; Flags: iscustom
Name: full; Description: {cm:instFull}
[Components]
Name: Programador; Description: {cm:cmpProgramador}; Types: full
Name: Usuario; Description: {cm:cmpUsuario}; Types: full
Name: Reporte; Description: {cm:cmpReporte}; Types: full
[Icons]
Name: {group}\{cm:cmpProgramador}; Filename: {app}\Programador\{#MyAppExeNameA}; Components: Programador
Name: {group}\{cm:cmpUsuario}; Filename: {app}\Usuario\{#MyAppExeNameB}; Components: Usuario
Name: {group}\{cm:cmpReporte}; Filename: {app}\Reporte\{#MyAppExeNameC}; Components: Reporte
Name: {group}\Desinstalar MIVES; Filename: {uninstallexe}
[Registry]
Root: HKCU; Subkey: Software\UPC; Flags: uninsdeletekey
Root: HKCU; Subkey: Software\UPC\MIVES
Root: HKLM; Subkey: Software\UPC; Flags: uninsdeletekey
Root: HKLM; Subkey: Software\UPC\MIVES
Root: HKLM; Subkey: Software\UPC\MIVES\Settings; ValueType: string; ValueName: InstallPath; ValueData: {app}
; file association depens of the components selected
Root: HKCR; Subkey: .mip; ValueType: string; ValueData: mip_auto_file; Flags: uninsdeletekey; Components: Programador
Root: HKCR; Subkey: mip_auto_file; Flags: uninsdeletekey; Components: Programador
Root: HKCR; Subkey: mip_auto_file\shell\open\command; ValueType: expandsz; ValueData: {app}\Programador\{#MyAppExeNameA} %1; Components: Programador
Root: HKCR; Subkey: .miu; ValueType: string; ValueData: miu_auto_file; Flags: uninsdeletekey; Components: Usuario
Root: HKCR; Subkey: miu_auto_file; Flags: uninsdeletekey; Components: Usuario
Root: HKCR; Subkey: miu_auto_file\shell\open\command; ValueType: expandsz; ValueData: {app}\Usuario\{#MyAppExeNameB} %1; Components: Usuario
Root: HKCR; Subkey: .mir; ValueType: string; ValueData: mir_auto_file; Flags: uninsdeletekey; Components: Reporte
Root: HKCR; Subkey: mir_auto_file; Flags: uninsdeletekey; Components: Reporte
Root: HKCR; Subkey: mir_auto_file\shell\open\command; ValueType: expandsz; ValueData: {app}\Reporte\{#MyAppExeNameC} %1; Components: Reporte
[Files]
Source: {#MyAppExeNameA}; DestDir: {app}\Programador; Flags: promptifolder; Components: Programador
Source: {#MyAppExeNameB}; DestDir: {app}\Usuario; Flags: promptifolder; Components: Usuario
Source: {#MyAppExeNameC}; DestDir: {app}\Reporte; Flags: promptifolder; Components: Reporte
我需要在传递/silent
或/verysilent
参数时默认安装三个组件之一(组件' Usuario')。
我想我必须使用Check: WizardSilent
,但我不知道在哪里。事实上,我尝试在WizardSilent
部分添加Components
,但没有任何反应:
[Components]
Name: Programador; Description: {cm:cmpProgramador}; Types: full
Name: Usuario; Description: {cm:cmpUsuario}; Types: full; Check: WizardSilent
Files
部分:
[Files]
Source: {#MyAppExeNameB}; DestDir: {app}\Usuario; Flags: promptifolder; Components: Usuario; Check: WizardSilent
这就是我需要的:
MIVES_211.exe /SP- /verysilent
>>>安装" Usuario"默认情况下为组件(静默模式,没有/components
参数)MIVES_211.exe /SP- /silent /components=Reporte
>>>仅安装"报告"组件(静默模式和components
参数)MIVES_211.exe /SP- /silent /components=Usuario,Reporte
>>>安装" Usuario"和"报告"组件(静默模式和components
参数) 编辑:
我想我找到了一个解决方案,但我不知道这是不是一个好的解决方案。刚添加了一种新类型,包括WizardSilent
支票:
[Types]
Name: silent; Description: {cm:instCustom}; Check: WizardSilent
Name: custom; Description: {cm:instCustom}; Flags: iscustom
Name: full; Description: {cm:instFull}
并在组件部分,组件" Usuario"中使用它。 (我想在静默安装中默认安装的组件):
[Components]
Name: Programador; Description: {cm:cmpProgramador}; Types: full
Name: Usuario; Description: {cm:cmpUsuario}; Types: full silent
Name: Reporte; Description: {cm:cmpReporte}; Types: full
现在,它真的像我想要的那样工作。但是我不希望有两种类型具有相同的描述,除非在设置向导中只显示一种类型。
这是个好主意吗?
谢谢!
答案 0 :(得分:1)
我相信您的设置在概念上是错误的。
静默安装应该安装典型/默认/常见安装。现在看起来默认安装是“完整”安装,但您希望静默安装的行为不同。这似乎不对。
所以你应该有一个默认的“典型”安装类型,带有“Usuario”组件。就像你现在有“沉默”类型一样。但即使在交互式安装中,“典型”类型也会有意义。
<asp:PostBackTrigger ControlID ="btnOderhelp" />
无论如何,[Types]
Name: typical; Description: "Typical"
Name: full; Description: "Full"
Name: custom; Description: "Custom"; Flags: iscustom
[Components]
Name: Programador; Description: "Programador"; Types: full
Name: Usuario; Description: "Usuario"; Types: full typical
Name: Reporte; Description: "Reporte"; Types: full
应始终伴随/SILENT
或至少/LOADINF
或/COMPONENTS
。
您的解决方案采用“静默”类型,而黑客攻击会稍微有效,因为/TYPE
会在交互式安装中隐藏此类型。
顺便说一句,请注意,仅仅Check: WizardSilent
,升级时,安装程序将使用之前(可能是交互式)安装中选择的组件。