Wix 安装程序 - 所有源和内容都没有被复制

Wix installer- All the sources and contents are not being copied

我有一个非常简单的 Wix 项目,我已经向其中添加了我的 c# 项目的引用。在wix项目参考中,我设置了 Project Output Groups = AllHarvest =

在我的 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问题