【发布时间】:2011-11-21 16:23:24
【问题描述】:
通常,您可以更改默认根驱动器来安装您的应用程序以使用:
<Property Id="ROOTDRIVE">D:\</Property>
但是现在,我希望使用在我的安装向导中单击下一步按钮时调用的 CustomAction 来更改它:
[CustomAction]
public static ActionResult SetFullInstallRootDrive(Session session) {
session["ROOTDRIVE"] = session["DRIVE_NAMES"].ToString();
}
DRIVE_NAMES 表示使用组合框选择的驱动器,ROOTDRIVE 被正确设置为我选择的任何本地驱动器(例如,C:\ 或D:\)。但是,安装程序始终安装到最初在上述属性中设置的 D:\ 驱动器。发生了什么,如何在自定义操作中动态更改此属性的值,以便让用户选择根驱动器来安装我的 Web 应用程序?该属性确实被设置,但它不使用它,它几乎就像 ROOTDRIVE 属性只在安装向导开始时被评估一次。
【问题讨论】:
-
我能够通过修改 TARGETDIR 而不是 ROOTDRIVE 来解决我自己的问题:
未安装 -
msi 日志显示什么?可能是您尝试更新属性的值为时已晚,其中路径已被安装程序“修复”。为什么不允许更改完整的安装路径,通常存储在
INSTALLDIR属性中?
标签: c# installation wix windows-installer custom-action