Wix 安装程序 - 所有源和内容都没有被复制
Wix installer- All the sources and contents are not being copied
我有一个非常简单的 Wix 项目,我已经向其中添加了我的 c# 项目的引用。在wix项目参考中,我设置了 Project Output Groups = All 和 Harvest = 真
在我的 Products.wxs 中,我有以下代码:
<?xml version="1.0" encoding="UTF-8"?>
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
<Product Id="*" Name="SetupProject1" Language="1033" Version="1.0.0.0" Manufacturer="test" UpgradeCode="44a12fea-ec26-4237-84e1-6aefb4483c73">
<Package InstallerVersion="200" Compressed="yes" InstallScope="perMachine" />
<MajorUpgrade DowngradeErrorMessage="A newer version of [ProductName] is already installed." />
<MediaTemplate EmbedCab="yes"/>
<Feature Id="ProductFeature" Title="SetupProject1" Level="1">
<ComponentGroupRef Id="ProductComponents" />
</Feature>
</Product>
<Fragment>
<Directory Id="TARGETDIR" Name="SourceDir">
<Directory Id="ProgramFilesFolder">
<Directory Id="INSTALLFOLDER" Name="SetupProject1" />
</Directory>
</Directory>
</Fragment>
<Fragment>
<ComponentGroup Id="ProductComponents" Directory="INSTALLFOLDER">
<Component Id="ProductComponent">
<File Source="$(var.MyProject.TargetPath)" />
</Component>
</ComponentGroup>
</Fragment>
</Wix>
问题 是当我安装 msi 安装程序时只有 一个 dll 安装到机器上,但是我希望看到所有安装文件夹中的工程内容(如Folders,C#类,dlls)不能只有一个dll文件。
自 WIX 3.6 HarvestProject 目标(Votive 中的项目输出组和收获标志对此负责)默认禁用,因为它已部分损坏。因此,您可以尝试通过将以下内容添加到 WIX 项目文件来启用它:
<PropertyGroup>
<EnableProjectHarvesting>True</EnableProjectHarvesting>
</PropertyGroup>
或者(我个人更喜欢这种方式)你可以使用HarvestDirectory target - it will collect all files and folders recursively in given directory and include in installer. You can even filter collected files/folders via XSD transformations. For example and detailed explanation on how to do it - refer to my answer to this问题
我有一个非常简单的 Wix 项目,我已经向其中添加了我的 c# 项目的引用。在wix项目参考中,我设置了 Project Output Groups = All 和 Harvest = 真
在我的 Products.wxs 中,我有以下代码:
<?xml version="1.0" encoding="UTF-8"?>
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
<Product Id="*" Name="SetupProject1" Language="1033" Version="1.0.0.0" Manufacturer="test" UpgradeCode="44a12fea-ec26-4237-84e1-6aefb4483c73">
<Package InstallerVersion="200" Compressed="yes" InstallScope="perMachine" />
<MajorUpgrade DowngradeErrorMessage="A newer version of [ProductName] is already installed." />
<MediaTemplate EmbedCab="yes"/>
<Feature Id="ProductFeature" Title="SetupProject1" Level="1">
<ComponentGroupRef Id="ProductComponents" />
</Feature>
</Product>
<Fragment>
<Directory Id="TARGETDIR" Name="SourceDir">
<Directory Id="ProgramFilesFolder">
<Directory Id="INSTALLFOLDER" Name="SetupProject1" />
</Directory>
</Directory>
</Fragment>
<Fragment>
<ComponentGroup Id="ProductComponents" Directory="INSTALLFOLDER">
<Component Id="ProductComponent">
<File Source="$(var.MyProject.TargetPath)" />
</Component>
</ComponentGroup>
</Fragment>
</Wix>
问题 是当我安装 msi 安装程序时只有 一个 dll 安装到机器上,但是我希望看到所有安装文件夹中的工程内容(如Folders,C#类,dlls)不能只有一个dll文件。
自 WIX 3.6 HarvestProject 目标(Votive 中的项目输出组和收获标志对此负责)默认禁用,因为它已部分损坏。因此,您可以尝试通过将以下内容添加到 WIX 项目文件来启用它:
<PropertyGroup>
<EnableProjectHarvesting>True</EnableProjectHarvesting>
</PropertyGroup>
或者(我个人更喜欢这种方式)你可以使用HarvestDirectory target - it will collect all files and folders recursively in given directory and include in installer. You can even filter collected files/folders via XSD transformations. For example and detailed explanation on how to do it - refer to my answer to this问题