我在Wix 3.7上。我有一個MSI,我想設置一個註冊表項(可能通過自定義操作,因爲他將不得不檢查密鑰是否已經存在)。將命令行參數傳遞給來自WiX bundle的MSI
我知道引導程序項目中的Bundle無法更改機器狀態(例如設置註冊表)。因此,我試圖通過<MsiProperty>
傳遞一個命令行參數,但似乎並未顯示爲我的日誌文件中的引導程序的命令行參數。
- 是否可以在一個Bundle中設置註冊表項?
- 如果不是,我如何添加命令行參數(或其他一些自定義數據) 傳遞給MSI。
- MSI如何讀取我傳遞給它的任何信息(無論它是否是命令行參數或其他東西 )。
軟件包:
<?xml version="1.0" encoding="UTF-8"?>
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
<Bundle
Name="MyInstallerBootstrapperLocalDb"
Version="1.0.0.0"
Manufacturer="some company"
UpgradeCode="PUT-GUID-HERE">
<BootstrapperApplicationRef Id="WixStandardBootstrapperApplication.RtfLicense" />
<Chain>
<MsiPackage Id="MyInstallerInstaller"
SourceFile="$(var.MyInstallerInstaller.TargetPath)"
Compressed="no">
<!-- TODO - if this is being set correctly, the MSI needs to
interpret it and set up the key-->
<MsiProperty Name="SetLocalDb" Value="yes"/>
</MsiPackage>
</Chain>
</Bundle>
</Wix>
MSI命令行上的屬性需要是PUBLIC屬性。公共財產就是資本。所以,它需要是SETLOCALDB,而不是SetLocalDb。並且需要在MSI中作爲所有首都進行宣佈。 – RobG