Ключи реестра WiX MultiString
Я попытался добавить ключи реестра для помощника по совместимости в настройку wix следующим образом:
<File Id="File1.exe" Name="File1.exe" LongName="File1.exe" Source="..\Binaries\File1.exe" DiskId="1" />
<File Id="File2.exe" Name="File2.exe" LongName="File2.exe" Source="..\Binaries\File2.exe" DiskId="1" />
<File Id="File3.exe" Name="File3.exe" LongName="File3.exe" Source="..\Binaries\File3.exe" DiskId="1" />
<Registry Root="HKLM"
Key="Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Compatibility Assistant"
Name="ExecutablesToExclude"
Type="multiString"
Action="append">
<RegistryValue Action="append" Value="[File1.exe]" />
<RegistryValue Action="append" Value="[File2.exe]" />
<RegistryValue Action="append" Value="[File3.exe]" />
</Registry>
Но при установке ключ не генерируется. Я что-то упускаю или делаю что-то не так? Я получил подробности о том, что я делаю из этого вопроса и документации по wix.
Обновление: синтаксис немного отличается, я думаю, потому что вопрос, на который я указал, использует другую версию WiX. Синтаксис, который я использовал, является единственным, который принимает WiX 2, и этот файл wix прекрасно работает - он просто не генерирует новые записи реестра.
Обновление: я неправильно диагностировал проблему; Скрипт wix работал правильно, но поместил значения в Wow6432bit
узел реестра, потому что содержащий компонент не имеет атрибута Win64="yes"
,
1 ответ
Насколько я вижу, элемент RegistryValue в WiX2 не имеет атрибутов. Интересно, как ваш пример компилируется без ошибок...
В любом случае, попробуйте переписать ваш элемент реестра следующим образом:
<Registry Root="HKLM"
Key="Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Compatibility Assistant"
Name="ExecutablesToExclude"
Type="multiString"
Action="append">
<RegistryValue>[File1.exe]</RegistryValue>
<RegistryValue>[File2.exe]</RegistryValue>
<RegistryValue>[File3.exe]</RegistryValue>
</Registry>