2013-05-31 9 views
9

Ich war mit WiX beteiligt und Hinzufügen von Registry-Einträge funktionieren gut, so aber ich habe Probleme beim Hinzufügen in Dateien.WiX-Datei zu Verzeichnis-Komponente hinzufügen

ich den Fehler:

Found orphaned Component 'ProductComponent'. 
If this is a Product, every Component must have at least one parent Feature. 
To include a Component in a Module, you must include it directly as a 
Component element of the Module element or indirectly via ComponentRef, 
ComponentGroup, or ComponentGroupRef elements. 

Der Code, WORKS:

<Fragment> 
    <Directory Id="TARGETDIR" Name="SourceDir"> 

     <Directory Id="ProgramFilesFolder"> 
      <Directory Id="INSTALLFOLDER" Name="ChrisExcelAddintest" /> 

    <Component Id="Registry_FriendlyName"> 
     <RegistryValue Id="RegKey_FriendlyName" Root="HKCU" 
        Key="Software\Microsoft\Office\Excel\AddIns\ExcelAddIn1test" 
        Name="ChrisFriendlyName" 
        Value="My Excel Add-In" 
        Type="string" KeyPath="yes" /> 
    </Component> 
    <Component Id="Registry_Description"> 
     <RegistryValue Id="RegKey_Description" Root="HKCU" 
        Key="Software\Microsoft\Office\Excel\AddIns\ExcelAddIn1test" 
        Name="Description" 
        Value="Chris Excel Add-In" 
        Type="string" KeyPath="yes" /> 
    </Component> 
    <Component Id="Registry_Manifest"> 
     <RegistryValue Id="RegKey_Manifest" Root="HKCU" 
        Key="Software\Microsoft\Office\Excel\AddIns\ExcelAddIn1test" 
        Name="Manifest" Value="[INSTALLFOLDER]ExcelAddIn1test.vsto|vstolocal" 
        Type="string" KeyPath="yes" /> 
    </Component> 
    <Component Id="Registry_LoadBehavior"> 
     <RegistryValue Id="RegKey_LoadBehavior" Root="HKCU" 
        Key="Software\Microsoft\Office\Excel\AddIns\ExcelAddIn1test" 
        Name="LoadBehavior" Value="3" 
        Type="integer" KeyPath="yes" /> 
    </Component> 
     </Directory> 
    </Directory> 
</Fragment> 

Jedoch habe ich versucht, indem nur in den folgenden Code direkt nach

<Directory Id="TARGETDIR" Name="SourceDir"> 

diesen Code:

<Directory Id="ProgramMenuFolder"> 
     <Directory Id="installcalc"> 
      <Component Id="ProductComponent" Guid="b11556a2-e066-4393-af5c-9c9210187eb2"> 
      <File Id="Calc" DiskId="1" Source="C:\WINDOWS\system32\calc.exe"/> 
      </Component> 
     </Directory> 
    </Directory> 

Antwort

13

Sie müssen Ihre Komponente zum Abschnitt "Funktionen" hinzufügen

z.

<Feature Id="ProductFeature" Title="yourtitle" Level="1"> 
    EXISTING ENTRIES HERE, Your new entry below 
    <ComponentRef Id="ProductComponent2"/> 
</Feature> 
+0

Oh ich sehe. Ich musste auch den ProgramMenuFolder ändern, aber das hilft mir, auf dem richtigen Weg zu sein –