我正在尝试将通过刻录正确传递的属性写入我的MSI中的注册表
这里有来自bootstrapper的代码
<Variable Name="REFERAL" Type="string" bal:Overridable="yes" Persisted="yes" Value="REFERAL__123456" />
.
.
.
<MsiProperty Name="REFERAL" Value="[REFERAL]" />
这里有来自MSI的代码
<Fragment>
<DirectoryRef Id="INSTALLFOLDER">
<Component Id="Main" Guid="138feeae-f687-4973-8d94-2bfaa2ddec38">
<RegistryValue Root='HKCU' Key='Software\[Manufacturer]\[ProductName]' Name='REFERER' Type='string' Value='[REFERER]' />
.
.
.
</Component>
</DirectoryRef>
</Fragment>
日志报告属性REFERER已正确更改
bootstrap burn
[25E4:2464][2013-10-23T10:18:04]i323: Registering package dependency provider: {A7E4C8A8-DC93-431F-A48C-8DAB6D766C5A}, version: 1.0.0.16052, package: app.msi
[25E4:2464][2013-10-23T10:18:04]i301: Applying execute package: app.msi, action: Install, path: C:\Users\Daniele\AppData\Local\Package Cache\{A7E4C8A8-DC93-431F-A48C-8DAB6D766C5A}v1.0.0.16052\app.msi, arguments: ' ARPSYSTEMCOMPONENT="1" MSIFASTINSTALL="7" REFERAL="REFERAL__123456"'
[25E4:2464][2013-10-23T10:18:07]i319: Applied execute package: app.msi, result: 0x0, restart: None
MSI
MSI (s) (9C:64) [10:18:05:690]: Command Line: ARPSYSTEMCOMPONENT=1 MSIFASTINSTALL=7 REFERAL=REFERAL__123456 REBOOT=ReallySuppress CURRENTDIRECTORY=C:\Users\Daniele\Sviluppo\c#\app\installer-bootstrap\bin\x86\ReleaseForPublish CLIENTUILEVEL=3 MSICLIENTUSESEXTERNALUI=1 CLIENTPROCESSID=9700
.
.
.
MSI (s) (9C:64) [10:18:05:692]: PROPERTY CHANGE: Modifying REFERAL property. Its current value is 'none'. Its new value: 'REFERAL__123456'.
.
. here it doesn't write the value
.
MSI (s) (9C:64) [10:18:06:800]: Executing op: RegAddValue(Name=REFERER,,)
答案 0 :(得分:1)
您希望该值为“REFERAL__123456”。您的MsiProperty
元素会将此值分配给名为REFERAL
的MSI属性,但在RegistryValue
元素中,您使用值REFERER
。将其更改为REFERAL
,您就可以开始了。您还应该指定Action属性,以明确您使用此元素执行的操作:
<Fragment>
<DirectoryRef Id="INSTALLFOLDER">
<Component Id="Main" Guid="138feeae-f687-4973-8d94-2bfaa2ddec38">
<RegistryValue Root='HKCU' Key='Software\[Manufacturer]\[ProductName]' Action='write' Name='REFERER' Type='string' Value='[REFERAL]' />
.
.
.
</Component>
</DirectoryRef>