visual-studio - 需要一种将一个属性添加到 VS2010 安装项目中的 msi 属性表的方法

标签 visual-studio windows-installer

我一直在使用 Orca 将属性“REINSTALLMODE”值“amus”手动添加到 msi 属性表中。

我厌倦了这个。我研究了 Wix,但到目前为止,我认为学习它/切换到它并不值得,即使它会解决这个问题。有没有一种方法可以在构建完成后自动将这个属性插入到 msi 中?最好只使用 vanilla visual studio 2010,不依赖第三方程序或系统环境变量。

有什么想法吗?

谢谢,

艾萨克

最佳答案

使用 vbscript

更改现有属性

set o_installer = CreateObject("WindowsInstaller.Installer")
set o_database = o_Installer.OpenDatabase("path_to_your_msi", 1)
s_SQL = "SELECT Property, Value FROM Property Where Property = 'ReinstallMode'"
Set o_MSIView = o_DataBase.OpenView(s_SQL)
o_MSIView.Execute
Set o_MSIRecord = o_MSIView.Fetch
o_MSIRecord.StringData(2) = "amus"
o_MSIView.Modify 2, o_MSIRecord
o_DataBase.Commit

添加新属性

set o_installer = CreateObject("WindowsInstaller.Installer")
set o_database = o_Installer.OpenDatabase("path_to_your_msi", 1)
s_SQL = "INSERT INTO Property (Property, Value) Values( 'ReinstallMode', 'amus')"
Set o_MSIView = o_DataBase.OpenView( s_SQL)
o_MSIView.Execute
o_DataBase.Commit

关于visual-studio - 需要一种将一个属性添加到 VS2010 安装项目中的 msi 属性表的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4212724/

相关文章:

c# - nunit 测试仅在作为 tfs msbuild 进程的一部分运行时抛出异常

visual-studio - Visual Studio,应用程序设置...重新排列

visual-studio - 如何清除 Visual Studio 中的 MRU 列表?

visual-studio-2010 - 隐藏 Visual Studio 中的挂起更改

c++ - 如何在 Visual Studio 中为聚合激活 (N)RVO?

c# - 如何使用 Visual Studio 为 .net Windows 服务创建安装程序

batch-file - 无法通过两个批处理文件运行 msi

WiX:手动设置功能的成本

wix - MSI 安装程序是否可以安装文件并终止而不留下足迹?

powershell - 从 PowerShell 运行 MsiExec 并获取返回代码