2013-08-20 3 views
5

मैं निम्नलिखित निर्देशिका संरचना में अपने आवेदन स्थापित करने के लिए करना चाहते हैं:WIX ComponentGroup उपनिर्देशिका

<Directory Id="TARGETDIR" Name="SourceDir"> 
    <Directory Id="ProgramFilesFolder"> 
     <Directory Id="CompanyFolder" Name="MyCompanyName"> 
      <Directory Id="INSTALLFOLDER" Name="MyProduct"> 
       <Directory Id="PLUGINS" Name="plugins"> 
        <Directory Id="DATABASE_PLUGINS" Name="db" /> 
       </Directory> 
      </Directory> 
     </Directory> 
    </Directory> 
</Directory> 

अब मैं एक साथ 1 सुविधा को परिभाषित किया है:

MyCompany/ 
    MyApp/ 
     assembly1.dll 
     assembly2.dll 
     assembly3.dll 
     ... 
     plugins/ 
      plugin1.dll 
      plugin2.dll 

इस के लिए, मैं निम्न फ़ोल्डर में परिभाषित किया गया एक घटक समूह के संदर्भ में। इस घटक समूह में "इन्स्टॉलफोल्डर" को इंगित करने वाली एक संपत्ति "निर्देशिका" है। लेकिन जब मैं अब घटक समूह में एक घटक घोषित करता हूं जिसमें "निर्देशिका" -प्रोपर्टी (DATABASE_PLUGINS को इंगित करना) है, तो वीएस मुझे सेटअप बनाने नहीं देगा।

<ComponentGroup Id="ProductComponents" Directory="INSTALLFOLDER"> 
    <Component Id="DB.Connector.Extension.Plugins.SqlCe" Directory="DATABASE_PLUGINS" Guid="{ae87be28-b0c9-4b3e-915f-2b4bf9965c99}"> 
     <File Source="$(var.DB.Connector.Extension.Plugins.SqlCe.TargetDir)DB.Connector.Extension.Plugins.SqlCe.dll" KeyPath="yes" /> 
    </Component> 
</ComponentGroup> 

मैं कैसे प्राप्त कर सकता हूं कि सेटअप मेरी मुख्य इंस्टॉल निर्देशिका के अंदर एक उपनिर्देशिका बनाता है और इसमें फाइलों को घोषित करता है?

+6

मैं एक अंग यहाँ पर बाहर जाना है और कहते हैं कि तुम ComponentGroup बाहर घटक घोषित करने के लिए है और करने के लिए एक ComponentRef तत्व का उपयोग समूह में जोड़ें – Netfangled

+0

एक आकर्षण की तरह काम किया। आपका बहुत बहुत धन्यवाद। =) – Atrotygma

उत्तर

4

यहाँ मेरा पूरा उदाहरण है मुझे आशा है कि यह आगे डेवलपर्स मदद

</Product> 
    <Fragment> 
    <Directory Id="TARGETDIR" Name="SourceDir"> 
     <Directory Id="ProgramFiles64Folder"> 
     <Directory Id="GiladDir" Name="Gilad"> 
      <Directory Id="INSTALLFOLDER" Name="App"> 
      <Directory Id="BIN" Name="bin"></Directory> 
      </Directory> 
     </Directory> 
     </Directory> 
     <Directory Id="ProgramMenuFolder" Name="Programs"> 
     <Directory Id="ProgramMenuDir" Name="App"> 
      <Component Id="ProgramMenuDir" Guid="*"> 
      <RemoveFolder Id="ProgramMenuDir" On="uninstall" /> 
      <RegistryValue Root="HKCU" Key="Software\[Manufacturer]\[ProductName]" Type="string" Value="" KeyPath="yes" /> 
      </Component> 
     </Directory> 
     </Directory> 
    </Fragment> 
    <Fragment> 
    <ComponentGroup Id="group_tools"> 
     <ComponentRef Id="comp_tool_dll" /> 

    </ComponentGroup> 
    <DirectoryRef Id="INSTALLFOLDER"> 
     <Directory Id="bin" Name="bin"> 
     <Directory Id="Release" Name="Release"> 
      <Directory Id="Plugins" Name="Plugins"> 
      <Component Id="comp_tool_dll" DiskId="1" KeyPath="yes" Guid="*"> 
       <File Id="file_comp_tool_dll" Source="$(var.ReleaseSourcePath)\Plugins\tool.dll" /> 
      </Component>