내 MSI 패키지가 InstallLocation
값을 HKEY_LOCAL_MACHINE\SOFTWARE\\(Wow6432Node)\Microsoft\Windows\CurrentVersion\Uninstall\\(GUID)
에 쓰고 싶습니다. 프로그램 추가/제거 제어판 (Location
열)에서도이 값을 확인해야합니다.WiX 및 ARPINSTALLLOCATION
WiX를 통해이 값을 설정하려면 ARPINSTALLLOCATION 속성을 사용자 지정 동작으로 설정해야합니다. 나는 <Product>
을 최소한으로 줄였습니다. 다음과 같이 표시됩니다.
<?xml version="1.0" encoding="UTF-8"?>
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi"
xmlns:util="http://schemas.microsoft.com/wix/UtilExtension">
<Product Id="*"
Name="MyApplication"
Language="1033"
Version="!(bind.FileVersion.MyApplication.exe)"
Manufacturer="Me"
UpgradeCode="db37f5dc-68c5-46ee-bbdf-704ff68b70db">
<Package InstallerVersion="400" Compressed="yes" InstallScope="perMachine" Languages="0" />
<MajorUpgrade DowngradeErrorMessage="A newer version of [ProductName] is already installed." />
<!-- use SetProperty as suggested by Rolo -->
<SetProperty Id="ARPINSTALLLOCATION" Value="[INSTALLDIR]" After="CostFinalize" />
<Feature Id="ProductFeature" Title="MyApplication" Level="1">
<ComponentGroupRef Id="MyApplication.Files.AllRequired" />
</Feature>
</Product>
<Fragment>
<Directory Id="TARGETDIR" Name="SourceDir">
<Directory Id="ProgramFilesFolder">
<Directory Id="INSTALLDIR" Name="MyApplication" />
</Directory>
</Directory>
</Fragment>
<Fragment>
<ComponentGroup Id="MyApplication.Files.AllRequired">
<Component Id="ProductComponent"
Guid="90EA8F1C-77D2-40E1-81AD-44B076EFAB9D"
Directory="INSTALLDIR">
<File Id="MyApplication.exe" Source="$(var.MyApplication.TargetDir)\MyApplication.exe" />
</Component>
</ComponentGroup>
</Fragment>
</Wix>
MSI는 WiX 표준 부트 스트 래퍼에 번들로 제공됩니다.
명백한 의견 만이 사용자별로 설치 (HKCU 참조) 또는 그것의 경우 64 비트 설치의 경우는 없을 것입니다
는이 같은 사용하여 뭔가를 단순화 할 수 있습니다. – PhilDW
패키지에는 _InstallScope = "perMachine"_이 있으므로 HKLM \ Software \ ... (또는 Wow6432Node)에 있어야합니다. 어떤 경우에는 프로그램 제어판의 프로그램 추가/제거 란에 _Location_ – Johannes
이 표시되어야합니다. 위의 코드를 완전하게 (그러나 줄였습니다.) '' –
Johannes