我有一个非常简单的Wix项目,我已经添加了对我的c#项目的引用。在wix项目参考中,我设置了项目输出组 = 全部,收获 = True
在我的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安装到机器上,但是我希望看到所有项目内容(例如文件夹, C#classes和dlls)在安装文件夹中不仅有单个dll文件。
答案 0 :(得分:2)
由于WIX 3.6 HarvestProject目标(Votive中的项目输出组和收获标志对此负责)在默认情况下处于禁用状态,因为它已部分损坏。因此,您可以尝试通过将以下内容添加到WIX项目文件来启用它:
<PropertyGroup>
<EnableProjectHarvesting>True</EnableProjectHarvesting>
</PropertyGroup>
或者(我个人更喜欢这种方式)你可以使用HarvestDirectory目标 - 它将在给定目录中递归收集所有文件和文件夹并包含在安装程序中。您甚至可以通过XSD转换过滤收集的文件/文件夹。有关如何操作的示例和详细说明 - 请参阅我对this问题
的回答