2015-01-15 12 views
1

설치 프로그램에서 지시 사항을 제공하는 페이지와 병행하여 일부 작업을 수행해야하는 Windows 프로그램을 시작하려고합니다. 이를 위해 새 페이지 (as per this tutorial)을 추가했습니다. 이제이 새 대화 상자에서 사용자 지정 작업을 시작하려고하는데 다음 오류가 발생합니다. 오류 LGHT0094 : 'Product : *'섹션의 'WixAction : InstallUISequence/UserRegistrationDlg'기호에 대한 확인할 수없는 참조입니다.Wix - 사용자 정의 대화 상자에 대한 확인되지 않은 참조

최소 예 :

<?xml version='1.0' encoding='windows-1252'?> 
<Wix xmlns='http://schemas.microsoft.com/wix/2006/wi'> 
    <Product Name='Foobar 1.0' Id='*' Language='1033' Codepage='1252' Version='1.0.0' Manufacturer='Acme Ltd.'> 
    <Package InstallerVersion='300' Compressed='yes' /> 
    <Directory Id='TARGETDIR' Name='SourceDir'/> 

    <UI Id="MyWixUI_FeatureTree"> 
     <DialogRef Id="TheNewDialog" /> 
     <UIRef Id="WixUI_FeatureTree" /> 
     <Publish Dialog="WelcomeDlg" Control="Next" Event="NewDialog" Value="TheNewDialog" Order="2">LicenseAccepted = "1"</Publish> 
     <Publish Dialog="LicenseAgreementDlg" Control="Back" Event="NewDialog" Value="TheNewDialog">1</Publish> 
    </UI> 

    <CustomAction Id="WindowsFeatures" Directory="TARGETDIR" ExeCommand="OptionalFeatures.exe" Execute="immediate" Return="asyncNoWait" /> 
    <InstallUISequence> 
    <Custom Action="WindowsFeatures" After="TheNewDialog" > 
     NOT Installed AND NOT DOTNETINSTALLED 
     </Custom> 
    </InstallUISequence> 
    </Product> 

    <Fragment> 
    <UI> 
     <Dialog Id="TheNewDialog" Width="370" Height="270" Title="[ProductName] [Setup]" NoMinimize="yes"> 
     <Control Id="Cancel" Type="PushButton" X="304" Y="243" Width="56" Height="17" Cancel="yes" Text="Cancel"> 
      <Publish Event="SpawnDialog" Value="CancelDlg">1</Publish> 
     </Control> 
     </Dialog> 
    </UI> 
    </Fragment> 
</Wix> 

내가 대신 전 = "TheNewDialog"의에 시도 = "WelcomeDlg"이후로 설정하지만 더욱 흥미로운 오류 제공 :

  • 오류 LGHT0094를 : 'Fragment :'섹션의 'Property : ApplicationFolderName'기호에 대한 확인되지 않은 참조입니다.
  • 오류 LGHT0094 : '조각 :'섹션의 '속성 : WixAppFolder'기호에 대한 참조가 해결되지 않았습니다.

나는 주변을 둘러 보았는데 이것은 WixUI_Advanced와 관련이있는 것 같지만 어떻게 생각 하느냐고 Wix가 어떻게 생각하고 있는지 알지 못합니다.

잘못된 참조를하는 것으로 어리석은 짓을하고있는듯한 느낌이 들지만 올바른 방법으로 내 손가락을 가져올 수없는 것처럼 보입니다. 누군가가이 작업 방법을 알려주 길 바랍니다.

답변

0

물론 모든 검색 탭을 정리하는 동안 문제를 해결 한 다음 몇 가지 세부 사항을 깨달았습니다. 문제점은 새 대화 상자가 'InstallUISequence'에 없지만 WelcomeDlg의 시퀀스 번호에있는 흐름의 일부입니다. 따라서 이전/이후에서 참조 할 수 없습니다.

<Publish Event="DoAction" Value="WindowsFeatures">1</Publish> 

또는 같은 : 이에 대한 해결책은 버튼 버튼 설명 자체에 다음과 같이 새 페이지를 향해가는 게시 심지어 '에서 InstallUISequence'의 정의를 설정하려고하지만에 넣어하지 않는 것입니다 이것은 나중에 UI 블록에서 추가 할 때입니다.

<Publish Dialog="WelcomeDlg" Control="Next" Event="DoAction" Value="WindowsFeatures" >1</Publish> 

저는 여전히 'WixUI_Advanced'가 스토리로 드래그되는 것을 얻지 못합니다.

-1

C : \ Program Files (x86) \ WiX Toolset v3.10 \ bin \ WixUtilExtension.dll에 대한 참조 추가