2015-11-26 31 views
5

Tôi đang sử dụng bộ công cụ Wix 3.8 và tôi cố gắng tạo một dự án msi. Trong khi xây dựng, tôi có lỗi như sau:Tại sao có lỗi trong dự án wix?

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

Có ai phải đối mặt với vấn đề như vậy không? Bất kỳ trợ giúp sẽ được đánh giá cao! Tôi là một người mới bắt đầu trong lĩnh vực này ... Đây là mã nguồn:

<?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> 

Trả lời

5

Có một open bug report trong theo dõi vấn đề WiX chỉ ra rằng các lỗi có liên quan đến tập tin RTF của bạn kết thúc bằng một ký tự null.

Tôi sẽ kiểm tra xem license.rtf của bạn có kết thúc bằng null hay không sau đó cắt bớt ký tự đó khỏi tệp (hoặc tạo tệp RTF mới không có giá trị rỗng)

+0

Cảm ơn bạn, bạn hoàn toàn đúng! Tôi vừa mở giấy phép với Notepad và ở đó tôi tìm thấy ký tự NULL. Sau khi loại bỏ tất cả mọi thứ đã làm việc! –

+1

@DziLean: Vui mừng vì nó hoạt động và chào mừng bạn đến với Stack Overflow. Bạn có thể giúp những người khác bằng cùng một vấn đề bằng cách upvoting câu trả lời hữu ích và bằng cách chấp nhận câu trả lời giúp bạn giải quyết vấn đề của mình. –

+0

Cảm ơn bạn đã chia sẻ, tôi chưa bao giờ thấy lỗi này. FWIW Tôi luôn khuyên bạn nên quay lên máy ảo Windows XP và sử dụng bàn di chuột để tạo RTF. Lý do cho điều này là kiểm soát RichText bao gồm trong Windows Installer là rất cũ và cầu kỳ vì vậy cách tiếp cận mẫu số phổ biến nhất giúp đầu ra các vấn đề xuống đường. Một có lẽ sẽ không bao giờ kết thúc với một RTF chấm dứt với một ký tự null nếu phương pháp này được theo sau. –

Các vấn đề liên quan