2011-01-27 4 views
2

나는이 같은 윅스 설치에 호환성 보조에 대한 레지스트리 키를 추가하는 시도 :윅스 멀티 스트링 레지스트리 키

<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는 제대로 작동하지만 포함 된 구성 요소에 Win64="yes" 속성이 없으므로 값을 레지스트리의 Wow6432bit 노드에 넣습니다.

+0

'사용됩니다. 당신이 다르게하는 이유가 있습니까? – wimh

+0

@Wimmel : WiX의 다른 버전이기 때문에 생각합니다. 나는 그 문제를 언급하도록 업데이트했다. – configurator

+0

대단한 결심입니다! 나는 당신이 제공 한 초기 정보를 바탕으로 이것을 추측하지 않을 것입니다 ... :) –

답변

1

지금까지 보았 듯이 WiX2의 RegistryValue 요소에는 특성이 없습니다. 내가

어쨌든,이 같이 당신의 레지스트리 요소를 다시 작성하려고 ... 샘플이 오류없이 컴파일됩니다 방법, 궁금 : 당신이`를 가리키는 질문에

<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