【发布时间】:2017-04-05 15:59:21
【问题描述】:
我正在尝试使用 msiexec 安装 7-Zip.msi。虽然我可以使用以下 nsis 命令执行 msi,但它默认安装到 C:\Program Files
ExecWait '"msiexec" /passive /i "$OUTDIR\<msi filename>.msi"'
我找不到为安装指定自定义目标目录的方法。
msiexec 文档建议我可以使用 TARGETDIR。所以我尝试了以下
SetOutPath "C:\Software\7-Zip"
DetailPrint "Installing 7-Zip to $OUTDIR"
ExecWait '"msiexec" /passive /i "$OUTDIR\7-Zip.msi" TARGETDIR="$OUTDIR"'
但是当我运行 nsis exe 时我没有收到任何错误,但是 7-Zip 还没有安装到 C:\Software\7-Zip 目录中。
有谁知道你在使用 msiexec 时如何指定目标安装目录?
【问题讨论】:
-
为什么只用 NSIS 标记这个?它甚至与 NSIS 无关。
-
“它甚至与 NSIS 无关” - 你怎么能这么肯定。您是否通过 NSIS ExecWait 函数调用来查看它如何解析提供的值?
-
ExecWait 不解析 $variables 以外的任何内容(就像大多数 NSIS 指令一样),然后它只调用 CreateProcess。最外面的一组引号被编译器删除。