2010-05-28 8 views
8

मैं विक्स संस्करण 3.0.5419.0 का उपयोग कर रहा हूं। मेरे पास दो .wxs फ़ाइलें हैं, एक जो एक टुकड़ा है, और दूसरा जो .msi फ़ाइल बनाने के लिए खंड का उपयोग करता है।वाईएक्स अनसुलझे संदर्भ त्रुटि

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

मैं उसके बाद निम्न चलाने

यहाँ फ़ाइल किस अंश (DaisyFarmer.wxs) का उपयोग करता है आदेश:

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

जब मैं चलाने मैं एक त्रुटि हो रही है light.exe जो

का कहना है

"DaisyFarmer.wxs (20): त्रुटि LGHT0094: खंड में: प्रतीक करने के लिए 'SchedulerComponent घटक' समाधान नहीं किया गया संदर्भ 'उत्पाद: {BB7FBBE4-0A25-4CC7-A39C-AC916B665220}'।"

मैं क्या याद आ रही है?

उत्तर

7

कारण यह है कि मुझे यह समस्या क्यों है कि मैं डेज़ीफार्मर.एक्सएक्स में TARGETDIR निर्दिष्ट नहीं करता हूं। अगर मैं DaisyFarmer.wxs ताकि TARGETDIR निर्दिष्ट किया जाता है, की तरह संशोधित:

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

तो सब कुछ काम करता है।