【问题标题】:Create an MSI package to run a setup file with other file attachments using WIX创建一个 MSI 包以使用 WIX 运行带有其他文件附件的安装文件
【发布时间】:2014-07-27 19:16:08
【问题描述】:

我需要创建一个 MSI 以在静默模式下运行安装文件。 环顾四周,我注意到 WIX 应该适用于我的情况,但我无法在 MSI 包中嵌入安装所需的所有文件(它仅包括 setup.exe 文件)。 放在文件的 xml WIX 下方:

<?xml version="1.0" encoding="UTF-8"?>
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
  <Product Id="*" Name="SetupAccessRT2013" Language="1033" Version="1.0.0.0" Manufacturer="" UpgradeCode="e4bcb0cc-f7a8-43b8-ac66-98e01d1e3ee4">
    <Package Description='pak' InstallerVersion='200' Compressed='yes' />
    <Media Id='1' Cabinet='setup.cab' EmbedCab='yes' />
  </Product>

  <Fragment>
    <DirectoryRef Id="TARGETDIR">
      <Directory Id="TempFolder">
        <Directory Id="INSTALLLOCATION" Name="~_tmpdir">
          <Directory Id="dirBC3E512250E74A98BACAB570B3DD87D7" Name="AccessRT2013silent">
            <Component Id="cmpD761E74C0DA72236640BD071EC999550" Guid="{F42E878A-DF6D-49C2-B3B8-24C5A72EEB27}">
              <File Id="fil1804F4AC5510C5DC18870FAAD2A8A47D"  Source="C:\AccessRT2013silent\autorun.inf" />
              <File Id="filA0D99F0F2E3A44845E905E1E0058139E"  Source="C:\AccessRT2013silent\Config.XML" />
              <File Id="filBFD7DBA2331ABC3318C55567EEB72E50"  Source="C:\AccessRT2013silent\readme.htm" />
              <File Id="filC632F72A53EB8D7F3087893644411FAC"  Source="C:\AccessRT2013silent\setup.dll" />
              <File Id="filB20574B529F8E6C6D5BB712F8548F31B"  Source="C:\AccessRT2013silent\setup.exe" />
            </Component>
            <Directory Id="dirD81488680DB588FD1907E8F902719D35" Name="accessrt.it-it">
              <Component Id="cmp7B135F7920D368786218584715620FA0" Guid="{C7C1658D-9191-484A-B05D-4867EF0480F8}">
                <File Id="filE95BAC2624D33FA0D67C2F4FF60D0AB5"  Source="C:\AccessRT2013silent\accessrt.it-it\accessrtmui.msi" />
                <File Id="fil123E12F79D36C0517F12EC443E675BF2"  Source="C:\AccessRT2013silent\accessrt.it-it\accessrtmui.xml" />
                <File Id="filE4382BD8850A3C4C239BE2BC6FEF84BB"  Source="C:\AccessRT2013silent\accessrt.it-it\accrtlr.cab" />
                <File Id="filE8A8CF1A02A8D2993C7B2FF3C5406688"  Source="C:\AccessRT2013silent\accessrt.it-it\setup.xml" />
              </Component>
            </Directory>
            <Directory Id="dirA2E4541D4880B837EF8E04848567D0B8" Name="accessrt.ww">
              <Component Id="cmpBC53101B6EC49831C6BC88BDE95A11D9" Guid="{E8427412-57C0-42B1-96E1-BD5F06B56E74}">
                <File Id="fil2357E5DF3FEAACAEE875A4C12C9FD6AB"  Source="C:\AccessRT2013silent\accessrt.ww\accessrt.cab" />
                <File Id="fil14B06E6CDD9832291B73228DA6C02F88"  Source="C:\AccessRT2013silent\accessrt.ww\accessrt.msi" />
                <File Id="filC8C91E8D9B3F96013D6FB37486ED3375"  Source="C:\AccessRT2013silent\accessrt.ww\accessrt.xml" />
                <File Id="fil3B693F9063FCA849825BCB0E3D23C64D"  Source="C:\AccessRT2013silent\accessrt.ww\accessrtww.xml" />
                <File Id="fil14432AEAA72B0EBD5451E94172A3E6D8"  Source="C:\AccessRT2013silent\accessrt.ww\office64ww.msi" />
                <File Id="fil83105F964A9B7E9531D023A54E3CAE74"  Source="C:\AccessRT2013silent\accessrt.ww\office64ww.xml" />
                <File Id="filCC537369EB4A1128FE2BAE1FD266B556"  Source="C:\AccessRT2013silent\accessrt.ww\ose.exe" />
                <File Id="fil13B561811753D473CE5C7C073BA1AD78"  Source="C:\AccessRT2013silent\accessrt.ww\osetup.dll" />
                <File Id="fil1CA8D5B548CE5CAA32BE21BD9E95B7BC"  Source="C:\AccessRT2013silent\accessrt.ww\owow64ww.cab" />
                <File Id="fil7D37CDD5398F4B53E2AC6BCDEA7AF6FA"  Source="C:\AccessRT2013silent\accessrt.ww\pidgenx.dll" />
                <File Id="filD2099F50C0355ABE9F4A979286432989"  Source="C:\AccessRT2013silent\accessrt.ww\pkeyconfig-office.xrm-ms" />
                <File Id="filD340F0F71D625B8F9CA44DA4589BB126"  Source="C:\AccessRT2013silent\accessrt.ww\setup.xml" />
              </Component>
            </Directory>
            <Directory Id="dir64B9E38E4D4A9D2F10B204431209FED0" Name="catalog">
              <Component Id="cmp68E05D43C17F3731AF28B3A313CB7FFE" Guid="{6B583FE6-C53F-4184-BAE6-25C4DDC8DC1D}">
                <File Id="filD34937D9FBDB8FEA9D90EAFD8F9659B1"  Source="C:\AccessRT2013silent\catalog\files15.cat" />
              </Component>
            </Directory>
            <Directory Id="dirB5A17BED548E019D6FC35907941C567B" Name="office.it-it">
              <Component Id="cmp7A2B708BBAA3333F61474D42F505D477" Guid="{78AF3691-DF2C-4093-82C2-1A3A84CE00BE}">
                <File Id="fil584C88D5876BD88EDED385EF2C8E714E"  Source="C:\AccessRT2013silent\office.it-it\branding.xml" />
                <File Id="fil081ECC2A6BCE9D9CC7E263DA68445E4E"  Source="C:\AccessRT2013silent\office.it-it\officelr.cab" />
                <File Id="filC4ECA87470C944F5010BEBE14F171861"  Source="C:\AccessRT2013silent\office.it-it\officemui.msi" />
                <File Id="filD90D9E08B5B9CE2B78D0838EA8E6C2CE"  Source="C:\AccessRT2013silent\office.it-it\officemui.xml" />
                <File Id="fil950EFBCD753783771D8CD2169597A10C"  Source="C:\AccessRT2013silent\office.it-it\osetupui.dll" />
                <File Id="filBF8E8C3BBA6882AAFF4A39D9EA4097C5"  Source="C:\AccessRT2013silent\office.it-it\pss10r.chm" />
                <File Id="fil8566B0F88EE45334F0E45540967B8153"  Source="C:\AccessRT2013silent\office.it-it\setup.chm" />
                <File Id="filED57A5D2C1D850B757404D0E4F561446"  Source="C:\AccessRT2013silent\office.it-it\setup.xml" />
                <File Id="filBA8902E75FC86E6CD530EEBDE105DABF"  Source="C:\AccessRT2013silent\office.it-it\shellui.mst" />
              </Component>
            </Directory>
            <Directory Id="dirA6B1FEC7FD17EC82D7CFF3EBC7ABAB89" Name="office64.it-it">
              <Component Id="cmpF6F336FD773C599549FB87C2F1BBBA48" Guid="{EFFE139C-F418-49F4-9F88-7C8B59970724}">
                <File Id="fil4BEBA1AEAFB4A46321114AC36C9423A5"  Source="C:\AccessRT2013silent\office64.it-it\office64mui.msi" />
                <File Id="filFBEE6C1441CDF4BE6B19DF825CA881BB"  Source="C:\AccessRT2013silent\office64.it-it\office64mui.xml" />
                <File Id="fil8FCBDEC21D69D2B3FEACA6364DFF98EC"  Source="C:\AccessRT2013silent\office64.it-it\owow64lr.cab" />
                <File Id="filCAD94331BB99F7FFD85D5447B93A9286"  Source="C:\AccessRT2013silent\office64.it-it\setup.xml" />
              </Component>
            </Directory>
            <Directory Id="dir98F696A3A7E255FF20FD4486771EA3EB" Name="updates">
              <Component Id="cmp7228C5A67608A940FD38EFA9265C004A" Guid="{DC337124-8D1C-4C83-9E56-46C43F292C7E}">
                <File Id="filFC219EA21604C0398FDD48D4F13D674B"  Source="C:\AccessRT2013silent\updates\readme.txt" />
              </Component>
            </Directory>
          </Directory>
        </Directory>
      </Directory>
    </DirectoryRef>
  </Fragment>

  <Fragment>
    <Feature Id='InstallFeature' Title='Install Feature' Level='1'>
      <ComponentRef Id="cmpD761E74C0DA72236640BD071EC999550" />
      <ComponentRef Id="cmp7B135F7920D368786218584715620FA0" />
      <ComponentRef Id="cmpBC53101B6EC49831C6BC88BDE95A11D9" />
      <ComponentRef Id="cmp68E05D43C17F3731AF28B3A313CB7FFE" />
      <ComponentRef Id="cmp7A2B708BBAA3333F61474D42F505D477" />
      <ComponentRef Id="cmpF6F336FD773C599549FB87C2F1BBBA48" />
      <ComponentRef Id="cmp7228C5A67608A940FD38EFA9265C004A" />
    </Feature>

    <!-- Run Action -->
    <CustomAction Id="RunWrapExe" Return="check" Execute="deferred" FileKey="filB20574B529F8E6C6D5BB712F8548F31B"
      ExeCommand="setup.exe /CONFIG Config.XML"  HideTarget="yes" Impersonate="no" />

    <InstallExecuteSequence>
      <Custom Action="RunWrapExe" After="InstallFiles">NOT REMOVE~="ALL"</Custom>
    </InstallExecuteSequence>
  </Fragment>
</Wix>

我该怎么办?

【问题讨论】:

  • 考虑使用 WiX Bootstrapper 项目而不是 WiX 设置项目。
  • 你能给我举个例子吗?这个Wix该死的我不能用它!
  • 文档给出了一个完整的例子。您需要将 Payload 元素添加到您的 ExePackage。你有问题吗?
  • 我发现 Bryan Johnston 的博客文章很有帮助。下载源代码并挑选:bryanpjohnston.com/2012/09/28/…

标签: wix installation


【解决方案1】:

我是这样解决的:

<Directory Id='TARGETDIR' Name='SourceDir'>
      <Component Id='MainExecutable' Guid='*'>
      </Component>
    </Directory>

    <Feature Id='Complete' Level='1'>
      <ComponentRef Id='MainExecutable' />
    </Feature>

    <Binary Id="Access.exe" SourceFile="C:\AccessRuntime_x86_it-it.exe"/>
    <CustomAction Id="LaunchFile" BinaryKey="Access.exe" ExeCommand="" Execute='deferred' Return='asyncNoWait' Impersonate='no'/>
    <InstallExecuteSequence>
      <Custom Action='LaunchFile' Before='InstallFinalize'/>
    </InstallExecuteSequence>

问题是我只会启动 exe 文件而不安装我们的软件包 MSI。我该怎么办?

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多