2012-01-26 11 views
24

मैंने वाईएक्स 3.6 स्थापना स्क्रिप्ट का एक उदाहरण उदाहरण बनाने की कोशिश की। वर्तमान में हम वाईएक्स 3.5 का उपयोग करते हैं और अब हम .NET 4 Client Profile framework को MSI फ़ाइल के लिए पूर्व-आवश्यकता के रूप में स्थापित करना चाहते हैं, जो हमारी product.wxs स्क्रिप्ट बनाता है। वाईएक्स 3.6 आगे का सबसे अच्छा तरीका लगता है।एक पूर्ण वाईएक्स 3.6 बंडल उदाहरण .NET 4 क्लाइंट प्रोफाइल बूटस्ट्रैपिंग

क्या वाईएक्स 3.6 के साथ ऐसा करने का एक कार्यात्मक उदाहरण है?

<?xml version="1.0" encoding="utf-8"?> 
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi" 
    xmlns:util="http://schemas.microsoft.com/wix/UtilExtension"> 

    <!-- Version change handling --> 
    <?define UpgradeCode="###############################"?> 
    <?ifdef env.BUILD_NUMBER ?> 
    <?define ProductVersion="2.6.$(env.BUILD_NUMBER).0"?> 
    <?else ?> 
    <?define ProductVersion="2.6.0.0"?> 
    <?endif ?> 

    <Product Id="*" Name="###############################" Language="1033" Version="$(var.ProductVersion)" Manufacturer="###############################" UpgradeCode="$(var.UpgradeCode)"> 
     <Package InstallerVersion="200" Compressed="yes" /> 

     <!-- Custom actions for this installer --> 
     <Binary Id="###############################.dll" SourceFile="..\..\Libraries\###############################.CA.dll" /> 

     <!-- Kill ##### before installation begins --> 
     <CustomAction Id="Kill#####ActionId" BinaryKey="###############################.dll" DllEntry="Kill#####Action" Execute="immediate" Impersonate="yes" Return="check" /> 
     <InstallExecuteSequence> 
      <Custom Action="Kill#####ActionId" Before="InstallInitialize" /> 
     </InstallExecuteSequence> 

     <!-- ADD/REMOVE Programs icon --> 
     <Icon Id="##############.ico" SourceFile="D:\##############\Input_WIX\NonHeat\##############.exe" /> 
     <Property Id="ARPPRODUCTICON" Value="##############.ico" /> 
     <Property Id="ARPHELPLINK" Value="http://##############" /> 

     <!-- EULA agreement --> 
     <WixVariable Id="WixUILicenseRtf" Value="D:\##############\Input_WIX\Heat\License.rtf" /> 

     <!-- Installer images --> 
     <WixVariable Id="WixUIBannerBmp" Value="InstallerTopImage.rle" /> 
     <WixVariable Id="WixUIDialogBmp" Value="InstallerSideImage.rle" /> 
     <UIRef Id="WixUI_Minimal" /> 
     <Upgrade Id="$(var.UpgradeCode)"> 
      <UpgradeVersion Minimum="1.0.0.0" Maximum="99.0.0.0" Property="PREVIOUSVERSIONSINSTALLED" IncludeMinimum="yes" IncludeMaximum="no" /> 
     </Upgrade> 

     <!-- Require ##### to be installed --> 
     <Property Id="#####4.INSTALLPATH"> 
      <RegistrySearch Id="RegistryFoundInstallPath" Key="SOFTWARE\McNeel\#####ceros\4.0" Root="HKLM" Name="InstallPath" Type="directory" /> 
     </Property> 
     <Property Id="#####4.RECENT"> 
      <RegistrySearch Id="RegistryFoundMostRecent" Key="SOFTWARE\McNeel\#####ceros\4.0" Root="HKLM" Name="MostRecent" Type="raw" /> 
     </Property> 
     <Property Id="VRAYCOMMONDIR"> 
      <RegistrySearch Id="ReigstryVRayCommon" Key="Software\ASGvis" Root="HKLM" Name="Common_dir" Type="raw" /> 
     </Property> 
     <Condition Message="##### 4 required before install"> 
      #####4.RECENT 
     </Condition> 

     <!-- Require administrator priveleges --> 
     <Condition Message="You need to be an administrator to install this product."> 
      Privileged</Condition> 

     <!-- Require .NET 3.5 SP1 to install --> 
     <PropertyRef Id="NETFRAMEWORK35_SP_LEVEL" /> 
     <Condition Message='This setup requires the .NET Framework 3.5 with Service Pack 1 be installed.'> 
      <![CDATA[Installed OR (NETFRAMEWORK35_SP_LEVEL AND NETFRAMEWORK35_SP_LEVEL = "#1")]]> 
     </Condition> 

     <Media Id="1" Cabinet="media1.cab" EmbedCab="yes" /> 

     <Directory Id="TARGETDIR" Name="SourceDir"> 
      <Directory Id="#####4.INSTALLPATH"> 
       <Directory Id="#####4.SYSTEM" Name="System"></Directory> 
      </Directory> 

      <Directory Id="ProgramFilesFolder"> 
       <Directory Id="INSTALLLOCATION" Name="##############"></Directory> 
       <Directory Id="DesktopFolder" Name="Desktop" /> 
       <Directory Id="ProgramMenuFolder"> 
        <Directory Id="ProgramMenuDir" Name="##############" /> 
       </Directory> 
      </Directory> 

      <!-- Set FULL permissions to our shared folders --> 
      <Directory Id="CommonAppDataFolder"> 
       <Directory Id="CommonApp##############" Name="##############"> 
        <Directory Id="MODELLIBPATH" Name="##############"> 
         <Component Id="##############UserPermissions" Guid="##############"> 
          <CreateFolder> 
           <util:PermissionEx GenericRead="yes" GenericWrite="yes" GenericExecute="yes" Delete="yes" DeleteChild="yes" User="Users" Domain="[MachineName]" /> 
          </CreateFolder> 
         </Component> 
        </Directory> 
        <Directory Id="APPDATAPATH" Name="#####"> 
         <Component Id="##############UserPermissions" Guid="FC4BF85F-E7A4-45DE-B25C-8F9419E75307"> 
          <CreateFolder> 
           <util:PermissionEx GenericRead="yes" GenericWrite="yes" GenericExecute="yes" Delete="yes" DeleteChild="yes" User="Users" Domain="[MachineName]" /> 
          </CreateFolder> 
         </Component> 
        </Directory> 
       </Directory> 
      </Directory> 

      <Directory Id="FontsFolder"></Directory> 
      <Component Id="##############RegistryKeys" Guid="17A55BEA-605D-425a-AAEE-F35EC8C1061E" DiskId="1" KeyPath="yes"> 
       <RegistryValue Id="##############RegInstallDir" Root="HKLM" Key="Software\##############\##############" Name="InstallPath" Action="write" Type="string" Value="[INSTALLLOCATION]" /> 
       <RegistryValue Id="##############RegLibraryPath" Root="HKLM" Key="Software\##############\##############" Name="LibraryPath" Action="write" Type="string" Value="[INSTALLLOCATION]Library" /> 
       <RegistryValue Id="##############RegModelLibraryPath" Root="HKLM" Key="Software\##############\##############" Name="ModelLibraryPath" Action="write" Type="string" Value="[MODELLIBPATH]" /> 
       <RegistryKey Id="##############Reg#####PluginKey" Root="HKLM" Key="Software\McNeel\#####ceros\4.0\[#####4.RECENT]\Plug-ins\FCAF502A-1572-42a9-A2C3-F25D7953B1A5\PlugIn" Action="create" /> 
       <RegistryValue Id="##############RegName#####4" Root="HKLM" Key="Software\McNeel\#####ceros\4.0\[#####4.RECENT]\Plug-ins\FCAF502A-1572-42a9-A2C3-F25D7953B1A5" Name="Name" Action="write" Type="string" Value="##############Server" /> 
       <RegistryValue Id="##############Reg#####4" Root="HKLM" Key="Software\McNeel\#####ceros\4.0\[#####4.RECENT]\Plug-ins\FCAF502A-1572-42a9-A2C3-F25D7953B1A5" Name="FileName" Action="write" Type="string" Value="[INSTALLLOCATION]##############\##############Server.rhp" /> 
       <RemoveRegistryKey Id="##############Skin" Root="HKLM" Key="Software\McNeel\#####ceros\4.0\Scheme: ##############" Action="removeOnInstall" /> 
      </Component> 
      <Component Id="VRayKeys" Guid="{96E9EBAC-48B4-4517-9409-F921BE92B3AA}" DiskId="1" KeyPath="yes" NeverOverwrite="yes"> 
       <RegistryValue Id="VRayKey" Root="HKLM" Key="Software\##############\Data" Name="Data" Action="write" Type="string" Value="FFFAAA" /> 
      </Component> 
      <Component Id="VRayRegistryKeys" Guid="{4D8815FA-85E2-421f-8BF9-F7F5A4133E96}" DiskId="1" KeyPath="yes" NeverOverwrite="yes" Permanent="yes"> 
       <Condition> 
        NOT VRAYCOMMONDIR 
       </Condition> 
       <RegistryValue Root="HKLM" Key="Software\ASGvis" Name="common_dir" Action="write" Type="string" Value="[INSTALLLOCATION]VRay\ASGVIS" /> 
      </Component> 
     </Directory> 
     <Feature Id="##############Features" Title="#####" Level="1"> 
      <ComponentGroupRef Id="##############" /> 
      <ComponentRef Id="##############LibraryUserPermissions" /> 
      <ComponentRef Id="##############SharedUserPermissions" /> 
      <ComponentRef Id="##############RegistryKeys" /> 
      <ComponentRef Id="VRayRegistryKeys" /> 
      <ComponentRef Id="VRayKeys" /> 
      <ComponentRef Id="ProgramMenuShortcuts" /> 
      <ComponentRef Id="#####App" /> 
      <ComponentRef Id="WixShortCut" /> 
      <ComponentRef Id="##############ShortCut" /> 
      <ComponentRef Id="TroubleShortCut" /> 
      <ComponentRef Id="DesktopShortcut" /> 
      <ComponentRef Id="VRayAuth" /> 
      <ComponentRef Id="Fonts" /> 
     </Feature> 
     <InstallExecuteSequence> 
      <RemoveExistingProducts Before="InstallInitialize" /> 
     </InstallExecuteSequence> 
     <UI /> 
    </Product> 

    <Fragment> 
     <Icon Id="ShortCutIcon" SourceFile="D:\##############Stage\Input_WIX\NonHeat\##############.exe" /> 
     <Icon Id="TroubleShooterIcon" SourceFile="D:\##############Stage\Input_WIX\Heat\TroubleShooter\TroubleShooter.exe" /> 
     <Icon Id="TeamViewerIcon" SourceFile="D:\##############Stage\Input_WIX\Heat\support.exe" /> 
     <DirectoryRef Id="ProgramFilesFolder"> 
      <Component Id="ProgramMenuShortcuts" Guid="881BD571-4FAF-4aa4-AB6E-15BB1629BE06"> 
       <CreateFolder Directory="ProgramMenuDir" /> 
       <RemoveFolder Id="RemoveMenuShortcuts" Directory="ProgramMenuDir" On="uninstall" /> 
       <RegistryValue Root="HKCU" Key="Software\##############\##############ShortCut" Name="InstalledStartMenuShortcuts" Type="integer" Value="1" /> 
      </Component> 
     </DirectoryRef> 
     <!-- This file is not Heat'ed, so we need this to install the executable --> 
     <DirectoryRef Id="INSTALLLOCATION" FileSource="Files"> 
      <Component Id="##############App" Guid="FA41A015-7D80-4e50-A909-94BBA4D7546A"> 
       <File Id="#####_Executable" Vital="yes" Source="D:\##############Stage\Input_WIX\NonHeat\##############.exe" /> 
      </Component> 
     </DirectoryRef> 
     <DirectoryRef Id="INSTALLLOCATION" FileSource="Files"> 
      <Component Id="WixShortCut" Guid="{8F2596B8-B7EC-4f40-AD64-DFC182A9353A}"> 
       <RegistryKey Root="HKCU" Key="Software\##############\##############ShortCut" Action="create"> 
        <RegistryValue Name="ShortCut" Value="1" Type="integer" KeyPath="yes" /> 
       </RegistryKey> 
       <Shortcut Id="ProgramMenuApplicationShortcut" Name="##############" Target="[###############_Executable]" Directory="ProgramMenuDir" Show="normal" Icon="ShortCutIcon" /> 
      </Component> 
     </DirectoryRef> 
     <DirectoryRef Id="INSTALLLOCATION"> 
      <Component Id="TroubleShortCut" Guid="{9E960528-8798-41DD-8DEE-9C3336CD3C88}"> 
       <RegistryKey Root="HKCU" Key="Software\#####\#####ShortCut" Action="create"> 
        <RegistryValue Name="ShortCut2" Value="1" Type="integer" KeyPath="yes" /> 
       </RegistryKey> 
       <Shortcut Id="TroubleshooterStartmenuShortcut" Name="Troubleshooter" Target="[INSTALLLOCATION]TroubleShooter\TroubleShooter.exe" Directory="ProgramMenuDir" Icon="TroubleShooterIcon" Show="normal"></Shortcut> 
      </Component> 
     </DirectoryRef> 
     <DirectoryRef Id="INSTALLLOCATION"> 
      <Component Id="TeamViewerShortCut" Guid="{AD99CAC6-E485-444B-B075-2FD8BE4C87A8}"> 
       <RegistryKey Root="HKCU" Key="Software\#####\#####ShortCut" Action="create"> 
        <RegistryValue Name="ShortCut3" Value="1" Type="integer" KeyPath="yes" /> 
       </RegistryKey> 
       <Shortcut Id="TeamviewerStartmenuShortcut" Name="Remote Assistance" Target="[INSTALLLOCATION]support.exe" Directory="ProgramMenuDir" Icon="TeamViewerIcon" /> 
      </Component> 
     </DirectoryRef> 
     <DirectoryRef Id="INSTALLLOCATION" FileSource="Files"> 
      <Component Id="DesktopShortcut" Guid="{EA9632D1-08ED-4257-A78F-B2373A65A5CF}"> 
       <RegistryKey Root="HKCU" Key="Software\#####\##############ShortCut" Action="createAndRemoveOnUninstall"> 
        <RegistryValue Name="desktopShortcut" Value="1" Type="integer" KeyPath="yes" /> 
       </RegistryKey> 
       <Shortcut Id="DesktopShortcut" Directory="DesktopFolder" Name="#####" Icon="ShortCutIcon" Target="[######_Executable]" /> 
      </Component> 
     </DirectoryRef> 
     <DirectoryRef Id="FontsFolder"> 
      <Component Id="Fonts" Guid="{8C8EE16C-92B6-4926-A41C-55B79429071C}" NeverOverwrite="yes"> 
       <File Id="bradley" Source="Fonts\bradhitc.ttf" TrueType="yes" /> 
      </Component> 
     </DirectoryRef> 
    </Fragment> 
    <Fragment> 
     <DirectoryRef Id="#####4.SYSTEM"> 
      <Component Id="VRayAuth" Guid="{ABED80D1-6EBA-48db-83E0-7CF48B0A55E8}"> 
       <File Id="VRayAuthFile" KeyPath="yes" Source="..\..\Libraries\VRayAuth.dll" /> 
      </Component> 
     </DirectoryRef> 
    </Fragment> 
</Wix> 

उत्तर

3

आप एक अलग WiX bootstrapper परियोजना बनाने की जरूरत:

यहाँ हमारे 3.5 स्क्रिप्ट हम आज का उपयोग करें। वाईएक्स 3.6 दस्तावेज में Building Installation Package Bundles देखें।

+1

दस्तावेज़ ब्रायनजे का उल्लेख Wix 3.6 के साथ स्थापित किया गया था। आप इसे अपने विंडोज़ स्टार्ट मेनू में पा सकते हैं। – deerchao

1

बार जब आप अपने bootstrapper है, तुम सब करने की जरूरत है:

  1. अपने bootstrapper/कामयाब bootstrapper आवेदन परियोजना में फ़ाइल WixNetFxExtension.dll के लिए एक संदर्भ जोड़ें।

  2. अपनी श्रृंखला में पहली आइटम के रूप में निम्नलिखित जोड़ें।

    <PackageGroupRef Id="NetFx40Web"/> 
    

यह है कि। अधिक जानकारी और विकल्प the WixNetfxExtension documentation में हैं।

+5

उसके पास कोई श्रृंखला नहीं है इसलिए मुझे नहीं पता कि यह कैसे सहायक है। – Jeff

+2

व्यक्तिगत रूप से मैं तर्क दूंगा * * मददगार है, क्योंकि ओप द्वारा चुने गए उत्तर में परिभाषा के अनुसार एक श्रृंखला की आवश्यकता होती है (वास्तव में सभी उत्तरों बूटस्ट्रैपर्स से संबंधित होते हैं)। एक बार आपके पास KMoraz के लिंक के रूप में आपका बूटस्ट्रैपर हो जाने के बाद, आवश्यक पूर्व-आवश्यकता जोड़ना पैकेजग्राफ लाइन को जोड़ने के समान सरल है। –

+0

मुश्किल हिस्सा बूटस्ट्रैप है, संदर्भ नहीं। मैं इसे एक उचित उत्तर के रूप में नहीं मानता। – LeoPucciBr

संबंधित मुद्दे