【问题标题】:Set install directory for MSI installer with string manipulation使用字符串操作设置 MSI 安装程序的安装目录
【发布时间】:2018-02-27 02:05:02
【问题描述】:

我正在为一个程序创建一个 MSI 安装程序,并希望允许人们升级他们的安装,而不是总是卸载/重新安装。

我已经完成了大部分工作,但现在我想将 TARGETDIR(或安装目录)自动设置为用户之前安装应用程序的位置。

在 Visual Studio 中,在启动条件 -> 搜索目标机器下,我找到一个名为 ISUPGRADE 的注册表项,其中包含先前安装的位置(如果已安装),但附加了 /bin/XXXX.dll。我想删除此字符串的结尾并将其设置为 TARGETDIR,以便在此处安装升级。

我可以将静态字符串设置为 TARGETDIR(在 CustomActions 中并引用 InstallExecuteSequence 和 InstallUISequence 中的操作),但我不知道如何用我的变量设置它。

我该怎么做?我正在使用 Visual Studio 生成 .msi 文件和 Powershell 脚本(用于手动/测试编辑的 Orca)来更改文件。

【问题讨论】:

  • 类似,但略有不同。听起来他们想获取注册表值,我已经有了值,只需要稍微修改一下字符串。我最终使用自定义操作类型 38(内联 VBscript)来编辑字符串值,然后再使用它来设置我的 TARGETDIR

标签: powershell windows-installer visual-studio-setup-proje orca


【解决方案1】:

分割路径

Split-Path cmdlet 仅返回路径的指定部分,例如父文件夹、子文件夹或文件名

获取帮助拆分路径

【讨论】:

  • 谢谢,这看起来很有用,但我认为我不能在 powershell 脚本中执行此操作。我需要它在安装程序本身中运行,以便它获取用户计算机上先前安装的目录。 powershell 脚本只是在发布之前在我的机器上本地编辑 .msi。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-02-21
  • 1970-01-01
  • 1970-01-01
  • 2012-03-05
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多