要解决此处列出的问题,我必须在MSI中更改InstallExecuteSequence .RemoveExistingProducts记录.
我想将此作为构建过程的一部分,而不是与Orca混在一起
修改MSI_SetProperty.js脚本给出
// MSI_SetActionSequence.js
// Performs a post-build fixup of an msi to set the specified table/action/sequence // Constant values from Windows Installer SDK var msiOpenDatabaseModeTransact = 1; var msiViewModifyInsert = 1; var msiViewModifyUpdate = 2; var msiViewModifyAssign = 3; var msiViewModifyReplace = 4; var msiViewModifyDelete = 6; if (WScript.Arguments.Length != 4) { WScript.StdErr.WriteLine("Usage: " + WScript.ScriptName + " file table action sequence"); WScript.Quit(1); } var filespec = WScript.Arguments(0); var table = WScript.Arguments(1); var action = WScript.Arguments(2); var sequence = parseInt(WScript.Arguments(3)); var installer = WScript.CreateObject("WindowsInstaller.Installer"); var database = installer.OpenDatabase(filespec, msiOpenDatabaseModeTransact); WScript.StdOut.WriteLine("Looking for action:" + action); try { var sql = "SELECT Action, Sequence FROM " + table + " WHERE Action = '" + action + "'"; var view = database.OpenView(sql); view.Execute(); var record = view.Fetch(); if (record) { while (record) { WScript.StdOut.Write("Found: " + record.StringData(0) + ", " + record.StringData(1) + ", " + record.StringData(2)); if (record.IntegerData(2) != sequence) { WScript.StdOut.WriteLine(" - changing to " + sequence); record.IntegerData(2) = sequence; view.Modify(msiViewModifyUpdate,record); } else WScript.StdOut.WriteLine(" - OK"); record = view.Fetch(); } view.Close(); database.Commit(); } else { view.Close(); throw("Warning - Could not find " + table + "." + action); } } catch(e) { WScript.StdErr.WriteLine(e); WScript.Quit(1); } 要调用此脚本来执行上面提到的操作序列的更改,您可以将以下内容放在批处理文件中,并从post构建事件中调用它,例如PostBuildEvent = $(ProjectDir)PostBuild.bat
cscript.exe MSI_SetActionSequence.js YOURINSTALLER.MSI InstallExecuteSequence RemoveExistingProducts 1525推荐阅读
如何解决《Angular显示url编码错误,如何获取解码版本?》经验,为你挑选了1个好方法。 ... [详细] 如何解决《元组没有属性“isdigit”》经验,为你挑选了1个好方法。 ... [详细] 如何解决《如何在TensorFlow中将张量转换为numpy数组?》经验,为你挑选了4个好方法。 ... [详细] 如何解决《Xcode7:无法使用单元测试目标创建Swift命令行工具》经验,为你挑选了1个好方法。 ... [详细] 如何解决《如何在Windows上使用VisualStudioCode设置Kestrel调试?》经验,为你挑选了0个好方法。 ... [详细] 如何解决《Android-NavigationView从右到左》经验,为你挑选了2个好方法。 ... [详细] 如何解决《从列表中取出元素》经验,为你挑选了1个好方法。 ... [详细] 如何解决《PHP7中的foreach更改》经验,为你挑选了1个好方法。 ... [详细] 如何解决《在Xcode帐户首选项中,如何刷新与AppleID连接的团队?》经验,为你挑选了0个好方法。 ... [详细] 如何解决《使用Git挂钩创建提交日志并添加到当前提交》经验,为你挑选了0个好方法。 ... [详细] 如何解决《NestedScrollView和CollapsingToolbarLayout快速滚动》经验,为你挑选了0个好方法。 ... [详细] 如何解决《对多个电子邮件执行一次批处理脚本》经验,为你挑选了0个好方法。 ... [详细] 如何解决《C中的文件识别不必要的行》经验,为你挑选了1个好方法。 ... [详细] 如何解决《循环内的递归函数》经验,为你挑选了1个好方法。 ... [详细] 如何解决《TensorFlow培训》经验,为你挑选了1个好方法。 ... [详细] 如何解决《显示名称不会出现在Windows10中的大图标/平铺下面》经验,为你挑选了1个好方法。 ... [详细] 如何解决《如何防止在非const对象上意外调用变异函数?》经验,为你挑选了5个好方法。 ... [详细] 如何解决《loopback在单个请求中保存相关的hasmany模型》经验,为你挑选了0个好方法。 ... [详细] 吐了个 "CAO" !RankList | 热门文章
- 1仅在函数或构造函数实现中允许参数初始化
- 2如果python中的语句没有打印
- 3使用原型[javascript]的未定义结果
- 4当我在rubymine中为我的项目添加ruby SDK时出错
- 5python 2.7:函数中的'newline'
- 6在使用gradle编译android库时如何禁止警告?
- 7为什么Notepad ++中的[[:alpha:]]也匹配中文单词?
- 8按特定值对python中的JSON进行排序
- 9GitHub:无法加载最新的提交信息
- 10删除列表中字符串的所有扩展名
- 11检查pandas Series是否至少有一个项大于一个值
- 12在where子句上使用mysql boolean
- 13Aurelia导航栏虚拟机不工作
- 14使用Stax Parser将巨大的xml文件> 10GB拆分成小块
- 15如何通过sql查询更改wordpress数据库中的url永久链接
- 16一个补码架构上的负零行为?
- 17python是基于堆栈的意思是什么?
- 18在Delphi 7中调用.net 4.0构建的dll
- 19你如何在Swift函数中放置一个guard语句?
- 20如何以编程方式在xiaomi中启用我的应用程序的自动启动
DevBox开发工具箱 | 专业的在线开发工具网站 京公网安备 11010802040832号 | 京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有