2014-06-19 31 views
5

Bu yüzden, uygulamam için bu yükleyiciyi geliştirmeye çalışıyorum. GUI'imi <UIRef Id="WixUI_InstallDir" /> olarak değiştirmeye karar verdim. Okuduğum bir eğiticiye göre, bu GUI'yi kullanırsam <Property Id="WIXUI_INSTALLDIR" Value="TOP_LEVEL_DIR" />'u da eklemem gerekiyor. Ancak, GUI'yi değiştirdiğimden ve bu satırı eklediğimde hata alıyorum (2343). MSI Logunu da aşağıya yükledim ve bir yer hakkında şikayet mi ediyor?Wix Installer Hatası 2343

hatası: MSI (c) (CC: 84) [13: 27: 33: 140]: Not 1: 2343 DEBUG: Hata 2343: Belirtilen yol boştur. Yükleyici, bu paketi yüklerken beklenmeyen bir hatayla karşılaştı. Bu, bu paketteki bir sorunu gösterebilir. Hata kodu 2343'tür. Bağımsız değişkenler: MSI (c) (CC: 84) [13: 27: 34: 663]: Ürün: Viewer 1.0 - Yükleyici bu paketi yüklerken beklenmeyen bir hatayla karşılaştı. Bu, bu paketteki bir sorunu gösterebilir. hata kodu argümanlar şunlardır 2343 geçerli:,,

Action ended 13:27:34: WelcomeDlg. Return value 3. 
MSI (c) (CC:DC) [13:27:34:672]: Doing action: FatalError 
Action 13:27:34: FatalError. 
Action start 13:27:34: FatalError. 
Action 13:27:34: FatalError. Dialog created 
Action ended 13:27:36: FatalError. Return value 2. 
Action ended 13:27:36: INSTALL. Return value 3. 

Kodu:

<?xml version='1.0' encoding='windows-1252'?> 
<Wix xmlns='http://schemas.microsoft.com/wix/2006/wi'> 
    <Product Name='Viewer 1.0' Id='*' UpgradeCode='PUT-GUID-HERE' 
    Language='1033' Codepage='1252' Version='1.0.0' Manufacturer='Direct'> 
    <Package Id='*' Keywords='Installer' Description="Viewer Installer" 
     Comments='Installer is a registered trademark.' Manufacturer='Direct' 
     InstallerVersion='100' Languages='1033' Compressed='yes' 
     SummaryCodepage='1252' /> 

    <Media Id='1' Cabinet='Sample.cab' EmbedCab='yes' DiskPrompt="CD-ROM #1" /> 
    <Property Id='DiskPrompt' Value="1.0 Installation [1]" /> 
    <Property Id="WIXUI_INSTALLDIR" Value="TOP_LEVEL_DIR" /> 

    <Directory Id='TARGETDIR' Name='SourceDir'> 
     <Directory Id='ProgramFilesFolder' Name='PFiles'> 
     <Directory Id='Direct' Name='DMD'> 
      <Directory Id='INSTALLDIR' Name='Viewer'> 

      <Component Id='MainExecutable' Guid='*'> 
       <Shortcut Id="startmenuViewer" Directory="ProgramMenuDir" 
         Name="Viewer" WorkingDirectory='INSTALLDIR' 
         Icon="Viewer.exe" IconIndex="0" Advertise="yes" /> 
       <Shortcut Id="desktopViewer" Directory="DesktopFolder" 
         Name="Viewer" WorkingDirectory='INSTALLDIR' 
         Icon="Viewer.exe" IconIndex="0" Advertise="yes" /> 

       <File Id='EXE' Name='Viewer.exe' DiskId='1' 
        Source='Viewer.exe' KeyPath='yes'> 
       </File> 
       <ProgId Id="DMDCCDAV" Description="Viewer"> 
        <Extension Id="xml" > 
        <Verb Id="open" Argument="&quot;%1&quot;" 
          TargetFile="EXE" /> 
        </Extension> 
       </ProgId> 
      </Component> 

      </Directory> 
     </Directory> 
     </Directory> 

     <Directory Id="ProgramMenuFolder" Name="Programs"> 
     <Directory Id="ProgramMenuDir" Name="Viewer"> 
      <Component Id="ProgramMenuDir" Guid="*"> 
      <RemoveFolder Id='ProgramMenuDir' On='uninstall' /> 
      <RegistryValue Root='HKCU' 
          Key='Software\[Manufacturer]\[ProductName]' 
          Type='string' Value='' KeyPath='yes' /> 
      </Component> 
     </Directory> 
     </Directory> 

     <Directory Id="DesktopFolder" Name="Desktop" /> 
    </Directory> 

    <Feature Id='Complete' Title='Viewer Installation' 
      Display='expand' Level='1' ConfigurableDirectory='INSTALLDIR'> 
    <Feature Id='MainProgram' Title='Viewer Program' 
      Description='The main executable.' Level='1'> 
     <ComponentRef Id='MainExecutable' /> 
     <ComponentRef Id='ProgramMenuDir' /> 
    </Feature> 
    </Feature> 

    <UIRef Id="WixUI_InstallDir" /> 
    <UIRef Id="WixUI_ErrorProgressText" /> 

    <Icon Id="Viewer.exe" SourceFile="Viewer.exe" /> 

    </Product> 
</Wix> 

cevap

10

<Property Id="WIXUI_INSTALLDIR" Value="TOP_LEVEL_DIR" /> değeri, kullanıcı arayüzü iletişim kutusuyla ayarlamak için izin olarak belirtmek şeydir. Bu durumda, kullanıcının ayarlamasını istediğiniz dizinin kimliği olarak TOP_LEVEL_DIR tanımını yapıyorsunuz, ancak ilgili Directory etiketine eşlenmiş olmuyor.

Kök yükleme dizinini değiştirmelerine izin vermeye çalıştığınız varsayılırsa, WIXUI_INSTALLDIR değerini TOP_LEVEL_DIR yerine INSTALLDIR olarak ayarlamayı deneyin. Daha fazla bilgi için bkz: this reference.

+0

Tamam, bu mantıklı. Bu benim problemimi çözdü. Teşekkür ederim. Şimdi varsayılan dosya ilişkilendirmelerini ve .net framework paketlerini denemek için kapalıyım: / – Kyle