0

我需要创建一个运行名为 Deploy-Application.exe 的文件的安装程序。Deploy-Application.exe 采用如下所示的参数:

Deploy-Application.exe -DeploymentType "Uninstall"

当我把它放在我的配置文件中时,它不起作用,因为 Sfx 模块认为我的参数只是

-DeploymentType 

因为双引号。7-zip SFX 模块的双引号是否有例外字符?如果有我找不到!

这是我的配置文件:

;!@Install@!UTF-8!
Title="test"
Progress="No"
ExecuteParameters="-DeploymentType "Uninstall""
RunProgram="Deploy-Application.exe"
;!@InstallEnd@!

编辑:事实证明 Deploy-Application.exe 不需要参数周围加上引号。我只是通过 cmd 运行它来测试它,如下所示:

Deploy-Application.exe -DeploymentType Uninstall

它工作得很好。但是,当我有一个如下所示的配置文件时:

;!@Install@!UTF-8!
Title="test"
Progress="No"
ExecuteParameters="-DeploymentType Uninstall"
RunProgram="Deploy-Application.exe"
;!@InstallEnd@!

它仍然不起作用。参数被忽略,我使用 ProcessExplorer 进行了验证,并且 Deploy-Application.exe 在没有参数的情况下启动。

4

2 回答 2

1

好吧,事实证明它与引号或任何东西无关。在第100次阅读LZMA SDK附带的installer.txt文档后,我意识到'ExecuteParameters'不适用于'RunProgram',它只适用于'ExecuteFile'。

以下是您如何使用“运行程序”的参数

RunProgram="notepad.exe"
RunProgram="C:\\Windows\\system32\\notepad.exe"
RunProgram="%Path%\\notepad.exe"
RunProgram="fm0:nowait:7z_EN.chm"
RunProgram="\"%%T\\Reader7Rus.msi\" /qn"
RunProgram="hidcon:fm0:\"%%S\\install.cmd\" /Q"

从我没有仔细阅读的文档中:

ID_String          Description 

Title              Title for messages 
BeginPrompt        Begin Prompt message 
Progress           Value can be "yes" or "no". Default value is "yes". 
RunProgram         Command for executing. Default value is "setup.exe". 
                   Substring %%T will be replaced with path to temporary 
                   folder, where files were extracted 
Directory          Directory prefix for "RunProgram". Default value is ".\\" 
ExecuteFile        Name of file for executing 
ExecuteParameters  Parameters for "ExecuteFile" 
于 2015-08-13T18:46:15.267 回答
1

您使用转发器逃脱它们 \

像这样

"\""  --> "
EG: ExecuteParameters="-DeploymentType \"Uninstall\""

参考

于 2015-08-12T22:45:24.063 回答