2011-09-08 8 views
20

के साथ विफल रहता है मैं WiX का उपयोग कर इंस्टॉलर बनाने की कोशिश कर रहा हूं जो शुरुआत में लाइसेंस अनुबंध नहीं दिखाता है। लेकिन मुझे नीचे की त्रुटि मिलती है।वाईएक्स इंस्टॉलर त्रुटि कोड 2819

Screenshot

यह मेरे पास है पूर्ण Product.wxs फ़ाइल क्षण में है। यह ठीक है और ठीक बनाता है। मुझे इस तरह की त्रुटि क्यों मिल रही है? क्या मेरा टुकड़ा अनुभाग सही जगह पर है? मैंने लाइसेंस से संबंधित प्रकाशन तत्वों को हटा दिया है और लाइसेंस अनुबंध के बजाय इंस्टॉल निर्देशिका संवाद दिखाने के लिए स्वागत संवाद के अगले बटन को संशोधित किया है। यह सहायता chm फ़ाइल में उल्लिखित है। मैं तब क्या याद कर रहा हूँ?

<?xml version="1.0" encoding="UTF-8"?> 
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi"> 
    <Product Id="077765d1-236d-4299-b751-f921828f2ac8" 
      Name="Wix Setup Example" 
      Language="1033" 
      Version="1.0.0.0" 
      Manufacturer="NBL" UpgradeCode="1b0f72a7-8e17-4897-9f96-66509cc39573"> 

     <Package InstallerVersion="200" Compressed="yes" /> 

     <Media Id="1" Cabinet="media1.cab" EmbedCab="yes" /> 

     <Directory Id="TARGETDIR" Name="SourceDir"> 
      <Directory Id="ProgramFilesFolder" > 
       <Directory Id="INSTALLLOCATION" Name="My Application Folder"> 
        <Component Id="ProductComponent" Guid="MY-GUID-HERE"> 
         <File Id="WindowsFormsApp.exe" 
          Source="../WindowsFormsApp/bin/Debug/WindowsFormsApp.exe"> 
         </File> 
        </Component> 
       </Directory> 
      </Directory> 
     </Directory> 

     <Feature Id="ProductFeature" Title="WixSetupProject" Level="1"> 
      <ComponentRef Id="ProductComponent" /> 
     </Feature> 

     <UI Id="WixUI_Advanced"> 
      <TextStyle Id="WixUI_Font_Normal" FaceName="Tahoma" Size="8" /> 
      <TextStyle Id="WixUI_Font_Bigger" FaceName="Tahoma" Size="12" /> 
      <TextStyle Id="WixUI_Font_Title" FaceName="Tahoma" Size="9" Bold="yes" /> 

      <Property Id="DefaultUIFont" Value="WixUI_Font_Normal" /> 
      <Property Id="WixUI_Mode" Value="Advanced" /> 

      <DialogRef Id="BrowseDlg" /> 
      <DialogRef Id="DiskCostDlg" /> 
      <DialogRef Id="ErrorDlg" /> 
      <DialogRef Id="FatalError" /> 
      <DialogRef Id="FilesInUse" /> 
      <DialogRef Id="MsiRMFilesInUse" /> 
      <DialogRef Id="PrepareDlg" /> 
      <DialogRef Id="ProgressDlg" /> 
      <DialogRef Id="ResumeDlg" /> 
      <DialogRef Id="UserExit" /> 

      <Publish Dialog="BrowseDlg" Control="OK" Event="DoAction" Value="WixUIValidatePath" Order="3">1</Publish> 
      <Publish Dialog="BrowseDlg" Control="OK" Event="SpawnDialog" Value="InvalidDirDlg" Order="4"><![CDATA[WIXUI_INSTALLDIR_VALID<>"1"]]></Publish> 

      <Publish Dialog="ExitDialog" Control="Finish" Event="EndDialog" Value="Return" Order="999">1</Publish> 

      <Publish Dialog="WelcomeDlg" Control="Next" Event="NewDialog" Value="InstallDirDlg" Order="1">NOT Installed</Publish> 
      <Publish Dialog="WelcomeDlg" Control="Next" Event="NewDialog" Value="VerifyReadyDlg" Order="1">Installed AND PATCH</Publish> 

      <Publish Dialog="InstallDirDlg" Control="Back" Event="NewDialog" Value="WelcomeDlg">1</Publish> 
      <Publish Dialog="InstallDirDlg" Control="Next" Event="SetTargetPath" Value="[WIXUI_INSTALLDIR]" Order="1">1</Publish> 
      <Publish Dialog="InstallDirDlg" Control="Next" Event="DoAction" Value="WixUIValidatePath" Order="2">NOT WIXUI_DONTVALIDATEPATH</Publish> 
      <Publish Dialog="InstallDirDlg" Control="Next" Event="SpawnDialog" Value="InvalidDirDlg" Order="3"><![CDATA[NOT WIXUI_DONTVALIDATEPATH AND WIXUI_INSTALLDIR_VALID<>"1"]]></Publish> 
      <Publish Dialog="InstallDirDlg" Control="Next" Event="NewDialog" Value="VerifyReadyDlg" Order="4">WIXUI_DONTVALIDATEPATH OR WIXUI_INSTALLDIR_VALID="1"</Publish> 
      <Publish Dialog="InstallDirDlg" Control="ChangeFolder" Property="_BrowseProperty" Value="[WIXUI_INSTALLDIR]" Order="1">1</Publish> 
      <Publish Dialog="InstallDirDlg" Control="ChangeFolder" Event="SpawnDialog" Value="BrowseDlg" Order="2">1</Publish> 

      <Publish Dialog="VerifyReadyDlg" Control="Back" Event="NewDialog" Value="InstallDirDlg" Order="1">NOT Installed</Publish> 
      <Publish Dialog="VerifyReadyDlg" Control="Back" Event="NewDialog" Value="MaintenanceTypeDlg" Order="2">Installed AND NOT PATCH</Publish> 
      <Publish Dialog="VerifyReadyDlg" Control="Back" Event="NewDialog" Value="WelcomeDlg" Order="2">Installed AND PATCH</Publish> 

      <Publish Dialog="MaintenanceWelcomeDlg" Control="Next" Event="NewDialog" Value="MaintenanceTypeDlg">1</Publish> 

      <Publish Dialog="MaintenanceTypeDlg" Control="RepairButton" Event="NewDialog" Value="VerifyReadyDlg">1</Publish> 
      <Publish Dialog="MaintenanceTypeDlg" Control="RemoveButton" Event="NewDialog" Value="VerifyReadyDlg">1</Publish> 
      <Publish Dialog="MaintenanceTypeDlg" Control="Back" Event="NewDialog" Value="MaintenanceWelcomeDlg">1</Publish> 

      <Property Id="ARPNOMODIFY" Value="1" /> 
     </UI> 
     <UIRef Id="WixUI_Common" /> 
    </Product> 
    <Fragment> 
     <Property Id="ApplicationFolderName" Value="My Application Folder" /> 
     <Property Id="WixAppFolder" Value="WixPerMachineFolder" /> 

     <WixVariable Id="WixUISupportPerUser" Value="1" Overridable="yes" /> 
     <WixVariable Id="WixUISupportPerMachine" Value="1" Overridable="yes" /> 

     <PropertyRef Id="ApplicationFolderName" /> 
    </Fragment> 
</Wix> 

वाईएक्स फ़ाइल का संपादित संस्करण जो कोई त्रुटि नहीं देता है। इस संस्करण में हालांकि छोड़ देता है तो सुविधा स्थापित करने और फ़ाइल संवाद के लिए ब्राउज़ करें:

<?xml version="1.0" encoding="UTF-8"?> 
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi"> 
    <Product Id="077765d1-236d-4299-b751-f921828f2ac8" 
      Name="Wix Setup Example" 
      Language="1033" 
      Version="1.0.0.0" 
      Manufacturer="NBL" UpgradeCode="1b0f72a7-8e17-4897-9f96-66599gg39573"> 

     <Package InstallerVersion="200" Compressed="yes" /> 

     <Media Id="1" Cabinet="media1.cab" EmbedCab="yes" /> 

     <Directory Id="TARGETDIR" Name="SourceDir"> 
      <Directory Id="ProgramFilesFolder"> 
       <Directory Id="INSTALLLOCATION" Name="My Application Folder"> 
        <Component Id="ProductComponent" Guid="17e13748-8d44-47f6-b020-66d29f8a84fe"> 
         <File Id="WindowsFormsApp.exe" 
          Source="../WindowsFormsApp/bin/Debug/WindowsFormsApp.exe"> 
         </File> 
        </Component> 
       </Directory> 
      </Directory> 
     </Directory> 

     <Feature Id="ProductFeature" Title="WixSetupProject" Level="1"> 
      <ComponentRef Id="ProductComponent" /> 
     </Feature> 

     <UI Id="WixUI_Advanced"> 
      <TextStyle Id="WixUI_Font_Normal" FaceName="Tahoma" Size="8" /> 
      <TextStyle Id="WixUI_Font_Bigger" FaceName="Tahoma" Size="12" /> 
      <TextStyle Id="WixUI_Font_Title" FaceName="Tahoma" Size="9" Bold="yes" /> 

      <Property Id="DefaultUIFont" Value="WixUI_Font_Normal" /> 
      <Property Id="WixUI_Mode" Value="Advanced" /> 
      <Property Id="WIXUI_INSTALLDIR" Value="INSTALLLOCATION" /> 

      <DialogRef Id="BrowseDlg" /> 
      <DialogRef Id="DiskCostDlg" /> 
      <DialogRef Id="ErrorDlg" /> 
      <DialogRef Id="FatalError" /> 
      <DialogRef Id="FilesInUse" /> 
      <DialogRef Id="MsiRMFilesInUse" /> 
      <DialogRef Id="PrepareDlg" /> 
      <DialogRef Id="ProgressDlg" /> 
      <DialogRef Id="ResumeDlg" /> 
      <DialogRef Id="UserExit" /> 

      <Publish Dialog="BrowseDlg" Control="OK" Event="DoAction" Value="WixUIValidatePath" Order="3">1</Publish> 
      <Publish Dialog="BrowseDlg" Control="OK" Event="SpawnDialog" Value="InvalidDirDlg" Order="4"><![CDATA[WIXUI_INSTALLDIR_VALID<>"1"]]></Publish> 

      <Publish Dialog="ExitDialog" Control="Finish" Event="EndDialog" Value="Return" Order="999">1</Publish> 

      <Publish Dialog="WelcomeDlg" Control="Next" Event="NewDialog" Value="BrowseDlg" Order="1">1</Publish> 
      <Publish Dialog="WelcomeDlg" Control="Next" Event="NewDialog" Value="VerifyReadyDlg" Order="1">1</Publish> 

      <Publish Dialog="InstallDirDlg" Control="Back" Event="NewDialog" Value="BrowseDlg">1</Publish> 
      <Publish Dialog="InstallDirDlg" Control="Next" Event="SetTargetPath" Value="[WIXUI_INSTALLDIR]" Order="1">1</Publish> 
      <Publish Dialog="InstallDirDlg" Control="Next" Event="DoAction" Value="WixUIValidatePath" Order="2">NOT WIXUI_DONTVALIDATEPATH</Publish> 
      <Publish Dialog="InstallDirDlg" Control="Next" Event="SpawnDialog" Value="InvalidDirDlg" Order="3"><![CDATA[NOT WIXUI_DONTVALIDATEPATH AND WIXUI_INSTALLDIR_VALID<>"1"]]></Publish> 
      <Publish Dialog="InstallDirDlg" Control="Next" Event="NewDialog" Value="VerifyReadyDlg" Order="4">WIXUI_DONTVALIDATEPATH OR WIXUI_INSTALLDIR_VALID="1"</Publish> 
      <Publish Dialog="InstallDirDlg" Control="ChangeFolder" Property="_BrowseProperty" Value="[WIXUI_INSTALLDIR]" Order="1">1</Publish> 
      <Publish Dialog="InstallDirDlg" Control="ChangeFolder" Event="SpawnDialog" Value="BrowseDlg" Order="2">1</Publish> 

      <Publish Dialog="VerifyReadyDlg" Control="Back" Event="NewDialog" Value="WelcomeDlg" Order="1">NOT Installed</Publish> 
      <Publish Dialog="VerifyReadyDlg" Control="Back" Event="NewDialog" Value="MaintenanceTypeDlg" Order="2">Installed AND NOT PATCH</Publish> 
      <Publish Dialog="VerifyReadyDlg" Control="Back" Event="NewDialog" Value="WelcomeDlg" Order="2">Installed AND PATCH</Publish> 

      <Publish Dialog="MaintenanceWelcomeDlg" Control="Next" Event="NewDialog" Value="MaintenanceTypeDlg">1</Publish> 

      <Publish Dialog="MaintenanceTypeDlg" Control="RepairButton" Event="NewDialog" Value="VerifyReadyDlg">1</Publish> 
      <Publish Dialog="MaintenanceTypeDlg" Control="RemoveButton" Event="NewDialog" Value="VerifyReadyDlg">1</Publish> 
      <Publish Dialog="MaintenanceTypeDlg" Control="Back" Event="NewDialog" Value="MaintenanceWelcomeDlg">1</Publish> 

      <Property Id="ARPNOMODIFY" Value="1" /> 
     </UI> 
     <UIRef Id="WixUI_Common" /> 
    </Product> 

    <Fragment> 
     <Property Id="ApplicationFolderName" Value="My Application Folder" /> 
     <Property Id="WixAppFolder" Value="WixPerMachineFolder" /> 

     <WixVariable Id="WixUISupportPerUser" Value="1" Overridable="yes" /> 
     <WixVariable Id="WixUISupportPerMachine" Value="1" Overridable="yes" /> 

     <PropertyRef Id="ApplicationFolderName" /> 
     <UI > 
      <Dialog Id="CustomBrowseDlg" Width="370" Height="270" Title="!(loc.BrowseDlg_Title)"> 
       <Control Id="PathEdit" Type="PathEdit" X="25" Y="202" Width="320" Height="18" Property="_BrowseProperty" Indirect="yes" /> 
       <Control Id="OK" Type="PushButton" X="240" Y="243" Width="56" Height="17" Default="yes" Text="!(loc.WixUIOK)"> 
        <Publish Event="SetTargetPath" Value="[_BrowseProperty]">1</Publish> 
        <Publish Event="EndDialog" Value="Return">1</Publish> 
       </Control> 
       <Control Id="Cancel" Type="PushButton" X="304" Y="243" Width="56" Height="17" Cancel="yes" Text="!(loc.WixUICancel)"> 
        <Publish Event="Reset" Value="0">1</Publish> 
        <Publish Event="EndDialog" Value="Return">1</Publish> 
       </Control> 
       <Control Id="ComboLabel" Type="Text" X="25" Y="58" Width="44" Height="10" TabSkip="no" Text="!(loc.BrowseDlgComboLabel)" /> 
       <Control Id="DirectoryCombo" Type="DirectoryCombo" X="70" Y="55" Width="220" Height="80" Property="_BrowseProperty" Indirect="yes" Fixed="yes" Remote="yes"> 
        <Subscribe Event="IgnoreChange" Attribute="IgnoreChange" /> 
       </Control> 
       <Control Id="WixUI_Bmp_Up" Type="PushButton" X="298" Y="55" Width="19" Height="19" ToolTip="!(loc.BrowseDlgWixUI_Bmp_UpTooltip)" Icon="yes" FixedSize="yes" IconSize="16" Text="!(loc.BrowseDlgWixUI_Bmp_Up)"> 
        <Publish Event="DirectoryListUp" Value="0">1</Publish> 
       </Control> 
       <Control Id="NewFolder" Type="PushButton" X="325" Y="55" Width="19" Height="19" ToolTip="!(loc.BrowseDlgNewFolderTooltip)" Icon="yes" FixedSize="yes" IconSize="16" Text="!(loc.BrowseDlgNewFolder)"> 
        <Publish Event="DirectoryListNew" Value="0">1</Publish> 
       </Control> 
       <Control Id="DirectoryList" Type="DirectoryList" X="25" Y="83" Width="320" Height="98" Property="_BrowseProperty" Sunken="yes" Indirect="yes" TabSkip="no" /> 
       <Control Id="PathLabel" Type="Text" X="25" Y="190" Width="320" Height="10" TabSkip="no" Text="!(loc.BrowseDlgPathLabel)" /> 
       <Control Id="BannerBitmap" Type="Bitmap" X="0" Y="0" Width="370" Height="44" TabSkip="no" Text="!(loc.BrowseDlgBannerBitmap)" /> 
       <Control Id="BannerLine" Type="Line" X="0" Y="44" Width="370" Height="0" /> 
       <Control Id="BottomLine" Type="Line" X="0" Y="234" Width="370" Height="0" /> 
       <Control Id="Description" Type="Text" X="25" Y="23" Width="280" Height="15" Transparent="yes" NoPrefix="yes" Text="!(loc.BrowseDlgDescription)" /> 
       <Control Id="Title" Type="Text" X="15" Y="6" Width="200" Height="15" Transparent="yes" NoPrefix="yes" Text="!(loc.BrowseDlgTitle)" /> 
      </Dialog> 
     </UI> 
    </Fragment> 
</Wix> 

उत्तर

37

कि निकाल रहा है MSI लॉग में निम्न त्रुटि हो जाता है:

DEBUG: Error 2819: Control Folder on dialog InstallDirDlg needs a property linked to it 

मूल रूप से इसका मतलब है कि "फ़ोल्डर के लिए ब्राउज़ करें" नियंत्रण को एक वास्तविक संपत्ति के मूल्य से जुड़ा हुआ नहीं है। आप आवेदन फ़ोल्डर के लिए मूल्य INSTALLLOCATION का उपयोग किया है - फिर आपको यह संवाद से जोड़ने के लिए निम्नलिखित मूल्य जोड़ने की आवश्यकता होगी, जिसका अर्थ है:

<Property Id="WIXUI_INSTALLDIR" Value="INSTALLLOCATION" /> 

गुड लक!

+1

धन्यवाद। मेरे पास स्क्रिप्ट में एक वैध गाइड था। इस पोस्ट के लिए बस "MY-GUID-HERE" डालें। :) वैसे भी, मैंने आपके द्वारा निर्दिष्ट संपत्ति के साथ स्क्रिप्ट को अपडेट किया है और कुछ बदलाव किए हैं। अब यह त्रुटि दूर ले जाता है और मैं लाइसेंस समझौते के हिस्से को छोड़ने में सक्षम हूं। लेकिन यह मुझे ब्रॉज़ फ़ोल्डर के लिए संकेत नहीं देता है और अब सुविधा संवाद स्थापित करता है। क्या आप कृपया मेरी फाइल देख सकते हैं और देख सकते हैं कि मैं क्या खो सकता हूं? धन्यवाद। – user20358

5

त्रुटि कोड 2819 का मतलब है (Windows Installer Error Messages से लिया गया) "नियंत्रण [3] संवाद पर [2] एक को इससे जुड़े गुण की जरूरत है"। यदि आप एमएसआई निशान (कमांड लाइन में जोड़ें/l * v) निकालते हैं तो आप यह देखने में सक्षम होंगे कि [3] और [2] किसके लिए खड़े हैं, और वहां से डीबगिंग जारी रखें।

+0

मैं एमएसआई निशान कैसे निकालूं? – user20358

+0

जैसे मैंने जवाब में लिखा है/l * v msiexec कमांड लाइन –

+2

@ user20358 'msiexec/i product.msi/l * vx install.log' के साथ इंस्टॉलेशन चलाएं। –

5

मेरा अनुभव है: आपको नियंत्रण टैग में संपत्ति विशेषता जोड़नी चाहिए। पसंद:

<Control Id="NameEdit" Type="Edit" X="45" Y="85" Width="220" Height="18" Property="USERNAME" Text="{80}" />