MSI 安装程序 - 如果目录结构中有多个级别,则数据目录的自定义参数将失败
我正在创建一个 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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
明白了,自定义操作字符串就是问题所在:
将
/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