2010-05-28 29 views
8

Wix 3.0.5419.0 sürümünü kullanıyorum. Iki .wxs dosyaları, bir parçası olan ve başka bir .msi dosyasını oluşturmak için parçayı kullanan bir tane. Ben başvuran ediyorum parçasıdırWiX çözümlenmemiş başvuru hatası

<?xml version='1.0' encoding='windows-1252'?> 
<Wix xmlns='http://schemas.microsoft.com/wix/2006/wi' 
    xmlns:iis='http://schemas.microsoft.com/wix/IIsExtension'> 
    <Product Name='Daisy Web Site 1.0' 
      Id='BB7FBBE4-0A25-4cc7-A39C-AC916B665220' 
      UpgradeCode='8A5311DE-A125-418f-B0E1-5A30B9C667BD' 
      Language='1033' Codepage='1252' Version='1.0.0' Manufacturer='the man'> 

    <Package Id='5F341544-4F95-4e01-A2F8-EF74448C0D6D' Keywords='Installer' 
     Description="desc" Manufacturer='the man' InstallerVersion='100' 
     Languages='1033' Compressed='yes' SummaryCodepage='1252' /> 

    <Media Id='1' Cabinet='Sample.cab' EmbedCab='yes' DiskPrompt="CD-ROM #1" /> 
    <Property Id='DiskPrompt' Value="the man" /> 

    <PropertyRef Id="NETFRAMEWORK35"/> 
    <Condition Message='This setup requires the .NET Framework 3.5.'> 
     <![CDATA[Installed OR (NETFRAMEWORK35)]]> 
    </Condition> 

    <Feature Id='DaisyFarmer' Title='DaisyFarmer' Level='1'> 
     <ComponentRef Id='SchedulerComponent' /> 
    </Feature> 

    </Product> 
</Wix> 

(Scheduler.wxs):

<?xml version="1.0" encoding="utf-8"?> 
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi"> 
    <Fragment> 
    <DirectoryRef Id="TARGETDIR"> 
     <Directory Id="dir2787390E4B7313EB8005DE08108EFEA4" Name="scheduler"> 
     <Component Id="SchedulerComponent" 
        Guid="{9254F7E1-DE41-4EE5-BC0F-BA668AF051CB}"> 
      <File Id="fil9A013D0BFB837BAC71FED09C59C5501B" 
       KeyPath="yes" 
       Source="SourceDir\DTBookMonitor.exe" /> 
      <File Id="fil4F0D8D05F53E6AFBDB498E7C75C2D98F" 
       KeyPath="no" 
       Source="SourceDir\DTBookMonitor.exe.config" /> 
      <File Id="filF02F4686267D027CB416E044E8C8C2FA" 
       KeyPath="no" 
       Source="SourceDir\monitor.bat" /> 
      <File Id="fil05B8FF38A3C85FE6C4A58CD6FDFCD2FB" 
       KeyPath="no" 
       Source="SourceDir\output.txt" /> 
      <File Id="fil397F04E2527DCFDF7E8AC1DD92E48264" 
       KeyPath="no" 
       Source="SourceDir\pipelineOutput.txt" /> 
      <File Id="fil83DFACFE7F661A9FF89AA17428474929" 
       KeyPath="no" 
       Source="SourceDir\process.bat" /> 
      <File Id="fil2809039236E0072642C52C6A52AD6F2F" 
       KeyPath="no" 
       Source="SourceDir\README.txt" /> 
     </Component> 
     </Directory> 
    </DirectoryRef> 
    </Fragment> 
</Wix> 

Sonra aşağıdaki çalıştırın İşte

fragman (DaisyFarmer.wxs) kullanan dosyasıdır komutları:

candle -ext WixUtilExtension -ext WiXNetFxExtension DaisyFarmer.wxs Scheduler.wxs 
light -sice:ICE20 -ext WixUtilExtension -ext WiXNetFxExtension Scheduler.wixobj DaisyFarmer.wixobj -out DaisyFarmer.msi 

ı çalıştırdığınızda bir hata alıyorum

diyor ki light.exe

"DaisyFarmer.wxs (20): hata LGHT0094: bölümünde: 'SchedulerComponent Bileşeni' sembolü Çözülemeyen referans 'Ürün: {BB7FBBE4-0A25-4CC7-A39C-AC916B665220}'."

Neyi eksik?

cevap

7

Bu sorunla karşılaşmamın nedeni, DaisyFarmer.wxs dosyasında TARGETDIR değerini belirtmemin olmamasıdır. Ben gibi TARGETDIR belirtilen şekilde DaisyFarmer.wxs, değiştirirseniz:

<?xml version='1.0' encoding='windows-1252'?> 
<Wix xmlns='http://schemas.microsoft.com/wix/2006/wi' 
    xmlns:iis='http://schemas.microsoft.com/wix/IIsExtension'> 
<Product Name='Daisy Web Site 1.0' 
    Id='BB7FBBE4-0A25-4cc7-A39C-AC916B665220' 
    UpgradeCode='8A5311DE-A125-418f-B0E1-5A30B9C667BD' 
    Language='1033' Codepage='1252' Version='1.0.0' Manufacturer='the man'> 

<Package Id='5F341544-4F95-4e01-A2F8-EF74448C0D6D' Keywords='Installer' 
    Description="desc" Manufacturer='the man' InstallerVersion='100' 
    Languages='1033' Compressed='yes' SummaryCodepage='1252' /> 

<Media Id='1' Cabinet='Sample.cab' EmbedCab='yes' DiskPrompt="CD-ROM #1" /> 
<Property Id='DiskPrompt' Value="the man" /> 

<PropertyRef Id="NETFRAMEWORK35"/> 
<Condition Message='This setup requires the .NET Framework 3.5.'> 
    <![CDATA[Installed OR (NETFRAMEWORK35)]]> 
</Condition> 

<Directory Id="TARGETDIR" Name="SourceDir"> 
    <Directory Id="INSTALLDIR" Name="scheduler"> 
    </Directory> 
</Directory> 

<Feature Id='DaisyFarmer' Title='DaisyFarmer' Level='1'> 
    <ComponentRef Id='SchedulerComponent' /> 
</Feature> 
Sonra her şey çalışır.