2011-01-27 2 views
2

Я пытался добавить ключи реестра для помощника совместимости с установкой WIX, как это:WiX MultiString ключи реестра

<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> 

Но когда не устанавливая нет ключа получает генерируется. Я что-то пропускаю или что-то не так? Я получил информацию о том, что я делаю от this question и документации wix.

Обновление: Синтаксис несколько отличается, я думаю, потому что вопрос, на который я указал, использует другую версию WiX. Синтаксис, который я использовал, является единственным, принимающим WiX 2, и этот файл wix строит отлично - он просто не генерирует новые записи в реестре.


Обновление: я неправильно определил проблему; wix scrpit работал правильно, но поместил значения в узел реестра Wow6432bit, потому что содержательный компонент не имел атрибута Win64="yes".

+0

В вопросе вы указываете на '' используется. Есть ли причина, по которой вы делаете это по-другому? – wimh

+0

@Wimmel: Я думаю, это потому, что это другая версия WiX. Я обновил вопрос, чтобы упомянуть об этом. – configurator

+0

Отлично, это разрешено! Я бы никогда не догадался об этом, основываясь на исходной информации, которую вы предоставили ... :) –

ответ

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> 
+0

Я просто попробовал это, и получаю точно такой же эффект - в настройке даже не создается многострочный ключ. – configurator

Смежные вопросы