Windows installer MSI错误。1001用法:InstallUtil。。生产服务器上出现错误
我们已经使用VisualStudio2008上的工具创建了一个MSI安装程序 这在安装程序类中实现了一些自定义操作 它在所有测试服务器上都可以正常工作,但由于某种原因,它在一个生产服务器上失败。错误消息是: 错误。1001用法:InstallUtil[/u |/uninstall][option[…]]assembly[[option[…]]assembly]Windows installer MSI错误。1001用法:InstallUtil。。生产服务器上出现错误,windows-installer,Windows Installer,我们已经使用VisualStudio2008上的工具创建了一个MSI安装程序 这在安装程序类中实现了一些自定义操作 它在所有测试服务器上都可以正常工作,但由于某种原因,它在一个生产服务器上失败。错误消息是: 错误。1001用法:InstallUtil[/u |/uninstall][option[…]]assembly[[option[…]]assembly] installUtil在每个给定程序集中执行安装程序。| |如果/u或/uninstall开关为…是传递给自定义安装程序a类目录的参数之
installUtil在每个给定程序集中执行安装程序。| |如果/u或/uninstall开关为…是传递给自定义安装程序a类目录的参数之一?如果是这样的话,很可能是在参数名的末尾附加了一个额外的\号,而这个\号又没有正确转义,从而导致了这个错误 请尝试运行与以下类似的命令: msiexec/i.msi/L*V“” 检查日志文件以查找有问题的参数
不幸的是,除了以其他方式(硬编码-yikes!)将参数传递给自定义程序集,或者以C代码从注册表中重新读取路径值之外,我还没有找到解决方法。是传递给自定义安装程序a类目录的参数之一吗?如果是这样的话,很可能是在参数名的末尾附加了一个额外的\号,而这个\号又没有正确转义,从而导致了这个错误 请尝试运行与以下类似的命令: msiexec/i.msi/L*V“” 检查日志文件以查找有问题的参数
不幸的是,除了以其他方式(硬编码-yikes!)将参数传递给自定义程序集,或者用C#code从注册表中重新读取路径值之外,我还没有找到解决方法。事实上,这已经困扰了我好几天了 在行中传递给msiexec的参数会很好地通过日志,并在Properties集合中正确显示 例如:
msiexec /i setup.msi /L* log.txt TargetDir="D:\Samples\Test\" CustAddOnDir="D:\Samples\Test\AddOns\"
以您期望的方式显示在日志中:
属性(C):TARGETDIR=D:\Samples\Test\属性(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"
现在的问题是,试图将TargetDir传递给自定义操作总是失败的
/destDir="[TARGETDIR]"
这似乎是由于尾随“\”在不存在时总是被追加。如果你想让用户选择一个新的安装目录,这真的很糟糕。你将如何将其纳入你的定制行动
您需要取消尾随斜杠的scape:
/destdir="[TARGETDIR]\"
事实上,这已经困扰我好几天了 在行中传递给msiexec的参数会很好地通过日志,并在Properties集合中正确显示 例如:
msiexec /i setup.msi /L* log.txt TargetDir="D:\Samples\Test\" CustAddOnDir="D:\Samples\Test\AddOns\"
以您期望的方式显示在日志中:
属性(C):TARGETDIR=D:\Samples\Test\属性(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"
现在的问题是,试图将TargetDir传递给自定义操作总是失败的
/destDir="[TARGETDIR]"
这似乎是由于尾随“\”在不存在时总是被追加。如果你想让用户选择一个新的安装目录,这真的很糟糕。你将如何将其纳入你的定制行动
您需要取消尾随斜杠的scape:
/destdir="[TARGETDIR]\"
如果我取消尾随斜杠,我得到的是“对象引用未设置为对象错误实例”。在这种情况下,如何解决问题?如果我取消尾随斜杠,我得到的是“对象引用未设置为对象错误实例”。在这种情况下,如何解决问题?