Dot-Net
WiX - 在設置輸出中收穫非項目程序集
我在 VS 2010 中使用 WiX 3.5,並將所有項目程序集添加為安裝項目 (.wixproj) 中的引用,並將 Harvest 屬性設置為 True,以便二進製文件、內容和衛星包含在.msi 文件。
但是,我將如何將任何第三方程序集 (.dll) 添加到 .msi 輸出?我是否需要將每個顯式添加到 Product.wxs 文件中,還是有更好的方法?理想情況下,我想將它們添加為安裝項目中的文件引用,但這似乎不是一個選項?
是的,您需要手動將它們添加到某些 wxs 文件中,或者您可以使用預建構步驟使用熱量為您收集這些文件(假設所有這些文件都位於單獨的目錄中)。
Heat是 Wix 的一部分,可以使用dir開關獲取整個目錄。根據命令行參數,它將生成一個單獨的 wxs 文件,其中包含一個 ComponentGroup。只需從 product.wxs 中引用此 ComponentGroup。
例如,我目前如何使用熱量來收穫我的發布目錄:
熱目錄“../../bin/release”-gg -cg CG.ApplicationBinaries -dr INSTALLDIR -scom -sfrag -sreg -srd -var var.BuildOutputDir -o ApplicationBinaries.wxs
這將生成文件 ApplicationBinaries.wxs:
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi"> <Fragment> <DirectoryRef Id="INSTALLDIR"> <Component Id="cmp53F90D1335DD67504EC2B9E1E8620DD3" Guid="{CA2DF1B5-7B20-4596-84A4-925B4F9BA6EC}"> <File Id="filC65F9CB88694FCA79FCB3CADB9481921" KeyPath="yes" Source="$(var.BuildOutputDir)\AsyncTCPsocket.dll" /> </Component> .... </DirectoryRef> </Fragment> <Fragment> <ComponentGroup Id="CG.ApplicationBinaries"> <ComponentRef Id="cmp53F90D1335DD67504EC2B9E1E8620DD3" /> ... </ComponentGroup> </Fragment> </Wix>