2014-11-06 99 views
0

如何在构建时生成的.msi的Visual Studio 2010中添加自定义属性。 .msi文件应该有一个名为“BUILDARCHITECTURE”的属性。如果没有困难,当我更改构建平台时,此属性应该自动更改为x64或x86。 如果这是不可能的,我可以将它硬编码到x86(它将被部署在32位机器上)。为.msi安装程序添加Visual Studio 2010定制属性

在Orca我可以去属性表,然后只需右键单击并添加行,它的工作原理。 但是我需要在VS2010中自动添加它。

问候

回答

0

您可以用生成后步骤做到这一点,我会从Windows的SDK工具包开始WiRunSql.vbs。这是一个采用SQL语句更新MSI文件的脚本。你想要一个像这样的SQL:

INSERT INTO `Property` (`Property`.`Property`, `Property`.`Value`) VALUES ('BUILDARCITECTURE', 'whatever') 

但是你为什么需要它呢? MSI通过VersionNT64属性知道它的体系结构,因此您可以在MSI中使用它,或者将它传递给您的自定义动作或任何其他内容。

从MSI外,你可以从汇总信息流模板性质的架构,在这个愚蠢的VBScript:

Option Explicit 

Dim installer 
Set installer = CreateObject("WindowsInstaller.Installer") 
Dim sumInfo : Set sumInfo = installer.SummaryInformation("another.msi", 0) 
dim someproperty 
someproperty = suminfo.Property(7) 

msgbox someproperty 
set suminfo = Nothing 
set installer=nothing 
+0

你打算使用的代码片段,而不是代码块:

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('<CustomProperty>', '<custom_property_value>')" Set o_MSIView = o_DataBase.OpenView(s_SQL) o_MSIView.Execute o_DataBase.Commit 

剧本是取自? – 2014-11-06 18:31:18

+0

我想要一些东西来保存啄痕,如果代码块这样做,很酷。 – PhilDW 2014-11-06 18:32:22

相关问题