У меня появилось новое, странное поведение в моей установке пакета: MSI, которые раньше отображались в программах и функциях, перестали появляться в программах и функциях (в дальнейшем упоминается как P & F).WiX Bundle не отображает MSI в программах и функциях
Поведение, которое я бы как случиться для программ, которые я устанавливаю, как ССИ появиться в P & F, давая пользователю возможность удалить их дискретно.
Что я пробовал/заметил:
- Если я установлю MSIS без пакетирования их:
- они появляются в P & F, и могут быть удалены
кроме того, я могут ли они отображаться в P & F, установив для свойства ARPSYSTEMCOMPONENT значение 1 (по умолчанию 0, что означает «появляются в P * F», то есть:
<Property Id="ARPSYSTEMCOMPONENT" Value="1"/>
эти изменения отражены в реестре. При проверке ключа HKLM/SOFTWARE/Microsoft/Windows/CurrentVersion/Uninstall/{GUID}, если я установил свойство в 1, оно появляется (оно не отображается, когда я устанавливаю его в 0, но я думаю, что это потому что значения по умолчанию не отображаются).
Однако, когда я поставил MSIS в Bundle, лото-Банго-бонго они исчезают из P & F! И, если я проверю реестр, свойство System 440086083888858787889008888 имеет значение 1 для каждого MSI.
Я пришел к выводу, что каким-то образом в моем загрузчике свойства SystemComponent для моих MSI устанавливаются в 1. Но где можно установить эти свойства? Излишне говорить, что я никогда не устанавливал их в своем WiX XML (по крайней мере, я не думаю, что знаю). У меня нет специального пользовательского интерфейса для загрузчика (только лицензия), и сами MSI устанавливаются тихо, без пользовательского интерфейса.
Я застрял! Может кто-нибудь пролить некоторый свет на это?
Я использую Visual Studio 2015, версию WiX 3.10. Вот полнота моего Загрузчик кода:
<?xml version="1.0" encoding="UTF-8"?>
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi"
xmlns:bal="http://schemas.microsoft.com/wix/BalExtension"
xmlns:util="http://schemas.microsoft.com/wix/UtilExtension"
xmlns:netfx="http://schemas.microsoft.com/wix/NetFxExtension">
<Bundle Name="****"
Version="1.0.5.0"
Manufacturer="****"
UpgradeCode="7be91f26-93f8-400c-9eac-e69383454e03"
IconSourceFile="src\****.ico" DisableModify="yes" DisableRemove="yes"
AboutUrl="****.com"
Copyright="Copyright 2017, ****">
<BootstrapperApplicationRef Id="WixStandardBootstrapperApplication.RtfLicense">
<bal:WixStandardBootstrapperApplication LicenseFile="src\****_License.rtf"
SuppressOptionsUI="yes"/>
</BootstrapperApplicationRef>
<!-- The two registry serarches provide a variable, what version of .NET is installed on the target machine. One search
is for x86, the other for x64. -->
<util:RegistrySearch Root="HKLM"
Key="SOFTWARE\Microsoft\Net Framework Setup\NDP\v4\Full"
Value="Version"
Variable="Net452FullVersion"/>
<util:RegistrySearch Root="HKLM"
Key="SOFTWARE\Microsoft\Net Framework Setup\NDP\v4\Full"
Value="Version"
Variable="Net452x64FullVersion"
Win64="yes"/>
<Chain>
<ExePackage
Id="Microsoft_dot_Net_4.5.2"
Name="Microsoft 4.5.2 Setup"
Cache="no"
Compressed="yes"
PerMachine="yes"
Permanent="yes"
SourceFile="executables\NDP452-KB2901907-x86-x64-AllOS-ENU.exe"
InstallCommand="/q"
DetectCondition="(Net452FullVersion = "4.5.51209") AND (NOT VersionNT64 OR (Net4x64FullVersion = "4.5.51209"))"
InstallCondition="(VersionNT >= v6.0 OR VersionNT64 >= v6.0) AND (NOT (Net452FullVersion = "4.5.51209" OR Net452x64FullVersion = "4.5.51209"))"/>
<ExePackage Id="Microsoft_Visual_C_plus_plus_Redistributable_2015"
InstallCommand="/q"
SourceFile="executables\vc_redist.x86.exe"/>
<RollbackBoundary/>
<MsiPackage SourceFile="$(var.****.TargetPath)"/>
<MsiPackage SourceFile="$(var.****.TargetPath)"/>
<ExePackage SourceFile="executables\****.exe" InstallCommand="/S"/>
<ExePackage SourceFile="executables\****.exe"/>
</Chain>
</Bundle>
</Wix>
ОСНОВНОЕ лицо-ладонь! Благодарю. Это то, что я действительно, действительно не должен был потратить три часа (по крайней мере, я узнал о реестре). – Bob