2015-11-26 11 views
5

Uso il set di strumenti Wix 3.8 e cerco di creare un progetto msi. Durante la costruzione ho un errore come questo:Perché c'è un errore in un progetto wix?

Severity Code Description Project File Line 
Error  '.', hexadecimal value 0x00, is an invalid character. Analyzer light.exe 0 

Qualcuno ha avuto un problema simile? Qualsiasi aiuto sarà apprezzato! Io sono un principiante in questo campo ... Ecco il codice sorgente:

<?xml version="1.0" encoding="UTF-8"?> 
<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs"> 
    <?define ProductName="Traffic_Analyzer" ?> 
    <?define ProductVersion="1.0.0.0" ?> 
    <?define ProductCode="*"?> 
    <?define UpgradeCode="9e36a864-f98e-446a-b2e6-dd77567a4031"?> 
    <?define Manufacturer="Leanenka_Dzianis"?> 
    <?define licenseRtf="C:\Users\DzianisL\Desktop\license.rtf"?> 

    <Product Id="$(var.ProductCode)" Name="$(var.ProductName)" Language="1049" Version="$(var.ProductVersion)" 
      Manufacturer="$(var.Manufacturer)" UpgradeCode="$(var.UpgradeCode)"> 
    <!--1033 on 1049 - Russian language maintaines--> 
    <Package InstallerVersion="200" Compressed="yes" /> 

    <MajorUpgrade DowngradeErrorMessage="A newer version of [ProductName] is already installed." /> 
    <MediaTemplate /> 

    <Directory Id="TARGETDIR" Name="SourceDir"> 
     <Directory Id="ProgramFilesFolder"> 
     <Directory Id="INSTALLLOCATION" Name="$(var.ProductName)"> 

      <Component Id="ProductComponent" Guid="*"> 
      <File Id='Sniffer' DiskId='1' Source='C:\Users\DzianisL\Documents\Visual Studio 2015\Projects\Sniffer\Sniffer\bin\Release\Sniffer.exe'/> 
      </Component> 
     </Directory> 
     </Directory> 

     <Directory Id="ProgramMenuFolder"> 
     <Directory Id="ApplicationProgramsFolder" Name="$(var.ProductName)"> 
      <Component Id="ApplicationShortcutSniffer" Guid="4CEBD68F-E933-47f9-B02C-A4FC69FDB551"> 
      <Shortcut Id="ShortcutSniffer" 
       Name="Sniffer" 
       Description="$(var.ProductName)" 
       Target="[INSTALLLOCATION]Sniffer.exe" 
       WorkingDirectory="INSTALLLOCATION"/> 
      <RemoveFolder Id="ApplicationProgramsFolder" On="uninstall"/> 
      <RegistryValue Root="HKCU" Key="Software\$(var.Manufacturer)\$(var.ProductName)" Name="installed" Type="integer" Value="1" KeyPath="yes"/> 
      </Component> 
     </Directory> 
     </Directory> 
    </Directory> 


    <Feature Id="ProductFeature" Title="$(var.ProductName)" Level="1"> 
     <ComponentRef Id="ProductComponent" /> 
     <ComponentRef Id="ApplicationShortcutSniffer" /> 
    </Feature> 
    <Property Id="WIXUI_INSTALLDIR" Value="INSTALLLOCATION" ></Property> 
    <WixVariable Id="WixUILicenseRtf" Overridable="yes" Value="$(var.licenseRtf)"/> 
    <UIRef Id="WixUI_InstallDir"/> 




    </Product> 

</Wix> 

risposta

5

C'è un open bug report nel numero Tracker WiX che indica che l'errore è correlato al file RTF che termina con un carattere null.

Vorrei verificare se il license.rtf termina con fine nulla poi troncare quel personaggio dal file (o creare un nuovo file RTF senza null)

+0

Grazie, lei ha perfettamente ragione! Ho appena aperto la licenza con Blocco note e lì ho trovato il carattere NULL. Dopo la sua rimozione, tutto ha funzionato! –

+1

@DziLean: Sono contento che abbia funzionato e benvenuti a Stack Overflow. Puoi aiutare gli altri con lo stesso problema facendo svanire risposte utili e accettando la risposta che ti ha aiutato a risolvere il tuo problema. –

+0

Grazie per la condivisione, non ho mai visto questo bug. FWIW Raccomando sempre di far girare una macchina virtuale Windows XP e usare il wordpad per creare l'RTF. Il motivo per questo è il controllo RichText incluso in Windows Installer è molto vecchio e pignolo quindi l'approccio denominatore minimo comune aiuta a risolvere i problemi lungo la strada. Uno probabilmente non finirà mai con un RTF terminato con un carattere null se questo approccio viene seguito. –

Problemi correlati