如何在構建時生成的.msi的Visual Studio 2010中添加自定義屬性。 .msi文件應該有一個名爲「BUILDARCHITECTURE」的屬性。如果沒有困難,當我更改構建平臺時,此屬性應該自動更改爲x64或x86。 如果這是不可能的,我可以將它硬編碼到x86(它將被部署在32位機器上)。爲.msi安裝程序添加Visual Studio 2010定製屬性
在Orca我可以去屬性表,然後只需右鍵單擊並添加行,它的工作原理。 但是我需要在VS2010中自動添加它。
問候
如何在構建時生成的.msi的Visual Studio 2010中添加自定義屬性。 .msi文件應該有一個名爲「BUILDARCHITECTURE」的屬性。如果沒有困難,當我更改構建平臺時,此屬性應該自動更改爲x64或x86。 如果這是不可能的,我可以將它硬編碼到x86(它將被部署在32位機器上)。爲.msi安裝程序添加Visual Studio 2010定製屬性
在Orca我可以去屬性表,然後只需右鍵單擊並添加行,它的工作原理。 但是我需要在VS2010中自動添加它。
問候
您可以用生成後步驟做到這一點,我會從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
所以經過一番研究,我已經與像菲爾的類似的方法。 這意味着我添加了一個後生成事件:
set msiFile=$(OutDir)\setup.msi
if "$(Configuration)" == "Release" (
wscript $(SolutionDir)\..\Build\AddCustomProperty.vbs %msiFile%
VBS腳本:Need a way to add one property to the msi properties table in setup project in VS2010
你打算使用的代碼片段,而不是代碼塊:
劇本是取自? – 2014-11-06 18:31:18
我想要一些東西來保存啄痕,如果代碼塊這樣做,很酷。 – PhilDW 2014-11-06 18:32:22