gpt4 book ai didi

wix - 将所有文件包括在Wix安装程序的Bin文件夹中

转载 作者:行者123 更新时间:2023-12-04 01:22:47 25 4
gpt4 key购买 nike

我是Wix的新用户,我为我的项目成功创建了一个MSI安装程序,但是我的Bin文件夹中有很多DLL文件和EXE主文件,我想在安装程序中包含所有这些文件

我找到了THIS解决方案,这似乎是正确的,但不幸的是,我无法在我的Wix文件中完成此解决方案,这是我的Wix文件:

<Product Id="*" Name="Setup"
Language="1033" Version="1.0.1.0"
Manufacturer="ORDER MS"
UpgradeCode="a4f0a0d0-ae64-4f62-9bb3-efa7e75072e0">

<Package InstallerVersion="200"
Compressed="yes"
InstallScope="perMachine" />

<MajorUpgrade Schedule="afterInstallInitialize"
DowngradeErrorMessage="A newer version of [ProductName] is already installed." />

<MediaTemplate />

<Feature Id="ProductFeature" Title="Setup" Level="1">
<ComponentGroupRef Id="ProductComponents" />
<ComponentRef Id="ApplicationShortcutDesktop" />
<ComponentRef Id="ApplicationShortcut" />
</Feature>

<Icon Id="Icon.exe" SourceFile="$(sys.CURRENTDIR)\icon.ico"/>
<Property Id="ARPPRODUCTICON" Value="icon.exe" />







<ComponentGroup Id="ProductComponents" Directory="INSTALLFOLDER">
<Component Id="ProductComponent">
<File Source="$(var.Order.TargetPath)" />
</Component>

<Component Guid="A7C42303-1D77-4C70-8D5C-0FD0F9158EB4" Id="CopyComponent">
<CopyFile Id="SomeId"
SourceProperty="SOURCEDIRECTORY"
DestinationDirectory="CopyTestDir" SourceName="*" />
</Component>
</ComponentGroup>

我收到此错误:

Error 1 ICE18: KeyPath for Component: 'CopyComponent' is Directory: 'INSTALLFOLDER'. The Directory/Component pair must be listed in the CreateFolders table.

最佳答案

该解决方案适用于WIX 3.11。

要收集整个目录,可以使用WIX工具集中的Heat。使用Heat,我们可以在每个构建中自动包含给定源目录中的所有文件。为此,我们首先需要编辑Setup.wixproj:

定义热量的收获路径:

<PropertyGroup>    
<DefineConstants>HarvestPath=...\Deploy</DefineConstants>
</PropertyGroup>

Heat将创建一个 .wxs文件。因此,我们需要将此文件添加到编译ItemGroup中:
<ItemGroup>
<Compile Include="Product.wxs" /> <!-- This will be your default one -->
<Compile Include="HeatGeneratedFileList.wxs" /> <!-- This is the Heat created one -->
</ItemGroup>

然后在 BeforeBuild构建目标中执行Heat:
<Target Name="BeforeBuild">
<HeatDirectory Directory="..\Deploy"
PreprocessorVariable="var.HarvestPath"
OutputFile="HeatGeneratedFileList.wxs"
ComponentGroupName="HeatGenerated"
DirectoryRefId="INSTALLFOLDER"
AutogenerateGuids="true"
ToolPath="$(WixToolPath)"
SuppressFragments="true"
SuppressRegistry="true"
SuppressRootDirectory="true" />
</Target>

每次构建WIX安装程序时,都会生成 HeatGeneratedFileList.wxs。必须将目录 ..\Deploy设置为要包含的文件的目录。
要在安装程序中包含这些文件,我们要做的唯一一件事就是编辑 .wxs主文件(如本例中的 Product.wxs)。 Heat将从上方创建一个 ComponentGroup并使用给定名称。需要在 Product.wxs的Feature部分中引用此组件:
<Feature Id="ProductFeature" Title="DiBA Tool" Level="1">
<...>
<ComponentGroupRef Id="HeatGenerated" />
</Feature>

关于wix - 将所有文件包括在Wix安装程序的Bin文件夹中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36756311/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com