我们使用Visual Studio 2008上的工具创建了一个MSI安装程序.
这有一些在Installer类中实现的自定义操作.
它适用于所有测试服务器,但由于某种原因,它在一个生产服务器中失败.错误消息是:
错误.1001.用法:InstallUtil [/ u |/uninstall] [option [..]] assembly [[option [...]] assembly]
installUtil在每个给定的程序集中执行安装程序.||如果/ u或/ uninstall开关是......
事实上,这已经困扰了我好几天.
在线路上传递给msiexec的参数很好,并在Properties集合中正确显示,如同在日志中显示的那样.
例如 :
msiexec /i setup.msi /L* log.txt TargetDir="D:\Samples\Test\" CustAddOnDir="D:\Samples\Test\AddOns\"
Run Code Online (Sandbox Code Playgroud)
以您期望的方式在日志中显示:
属性(C):TARGETDIR = D:\ Samples\Test\
Property(C):CUSTADDONDIR = D:\ Samples\Test\AddOns \
但是,当您尝试通过属性页上的CustomactionData将其中任何一个传递给自定义操作时出现此错误:
/ addOnDir = "[CUSTADDONDIR]"
这似乎很愚蠢,但从msiexec命令行中删除尾随的"\"修复了这个问题.
msiexec /i setup.msi /L* log.txt TargetDir="D:\Samples\Test" CustAddOnDir="D:\Samples\Test\AddOns"
Run Code Online (Sandbox Code Playgroud)
现在的问题是尝试将TargetDir传递给您的自定义操作总是失败.
/destDir="[TARGETDIR]"
Run Code Online (Sandbox Code Playgroud)
这似乎是由于尾随"\"总是被追加,如果它不存在.如果你想让用户选择要安装的新目录,这真的很糟糕.你会如何将其纳入自定义操作?
你需要忽略尾随斜杠:
/destdir="[TARGETDIR]\"
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4203 次 |
| 最近记录: |