MSI 安装程序 - 如果目录结构中有多个级别,则数据目录的自定义参数将失败

发布于 2024-12-09 21:45:48 字数 318 浏览 1 评论 0原文

我正在创建一个 MSI 安装程序,用户可以在其中选择与安装路径分开的数据目录。我有一个自定义操作字符串,如下所示,其中 Param1 是数据目录。

/targetdir="[TARGETDIR]\" /Param1="[EDITA1]\"

如果用户输入 C:\DataDirectory,则安装程序会接受该参数,并且该值将传递到我的自定义安装覆盖方法,其中目录被创建。

如果用户输入结构中具有更多级别的目录,无论该目录是否已存在,安装都会在我的安装覆盖方法中的任何内容被命中之前失败。

这是为什么呢?

我不想限制用户必须将目录放置在根级别?

I am creating an MSI installer where the user can choose a data directory seperate to the install path. I have a custom action string as below where Param1 is the data directory.

/targetdir="[TARGETDIR]\" /Param1="[EDITA1]\"

If the user enters C:\DataDirectory, then the parameter is accepted by the installer and the value is passed on to my custom Install override method where the directory is created.

If the user enters a directory with more levels in it's structure, regardless of whether the directory already exists or not, the install fails before anything in my Install override method is hit.

Why is this?

I don't want to restrict the user to having to place the directory at root level?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

指尖微凉心微凉 2024-12-16 21:45:48

明白了,自定义操作字符串就是问题所在:

/targetdir="[TARGETDIR]\" /Param1="[EDITA1]\"

更改为

/targetdir="[TARGETDIR]\" /Param1="[EDITA1]"

斜杠最后似乎向安装程序表明了一些东西,我实际上只是希望将值直接传递到我的自定义代码

希望这对其他人有帮助

Got it, the custom action string was the problem:

Change

/targetdir="[TARGETDIR]\" /Param1="[EDITA1]\"

to

/targetdir="[TARGETDIR]\" /Param1="[EDITA1]"

The slash at the end seemed to indicate something to the installer, where really I just wanted the value passed stright through to my custom code

Hope this helps others

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文