2015-01-15 8 views
1

В моем установщике я пытаюсь запустить программу Windows, на которой пользователь должен выполнить некоторые действия параллельно странице с инструкциями. Для этого я добавил новую страницу (as per this tutorial). Теперь я хочу начать пользовательское действие перед этим новым диалоговым окном, но я получаю следующую ошибку: ошибка LGHT0094: Неразрешенная ссылка на символ «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: Неразрешенная ссылка на символ «Свойство: ApplicationFolderName» в разделе «Фрагмент:».
  • ошибка LGHT0094: Неразрешенная ссылка на символ «Свойство: WixAppFolder» в разделе «Фрагмент:».

Я смотрю вокруг, и это, похоже, связано с WixUI_Advanced, но я понятия не имею, как я запускаю Wix, чтобы думать, что я использую это.

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

ответ

0

Конечно, при очистке всех вкладок поиска я столкнулся с чем-то, что разрешило его, а затем реализовало некоторые детали. Проблема в том, что мой новый диалог не находится в «InstallUISequence», а является частью потока по порядковому номеру WelcomeDlg. Поэтому на него нельзя ссылаться в до/после. Решение это не пытаться установить обычай даже в «InstallUISequence», но поставить его в публикацию на кнопку идет к новой странице, как это на самом обозначении кнопки:

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

или как это при добавлении его позже из блока 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

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