gpt4 book ai didi

c# - 获取 WIX 以在项目中包含引用

转载 作者:太空狗 更新时间:2023-10-29 22:19:12 25 4
gpt4 key购买 nike

我对 WiX 完全陌生,一般来说设置自定义安装程序,所以我为这个问题的主题道歉!

我有一个内部业务应用程序(日记),它构建并运行良好,因此我按照教程/官方文档添加 WiX 项目并将日记的 csproj 引用到它。

然后构建并运行这个最基本版本的 WiX 安装程序后,输出目录有一个单独的 exe 文件,它在加载后立即崩溃并出现文件未找到异常。

我的猜测是它没有内置在 Crystal Report 或 NLog 中,我的 CSProj 中引用了这两者。

我的问题是,如何让 WIX 包含和构建对输出的那些项目引用???

非常感谢任何帮助!/安东尼

最佳答案

不幸的是,您将不得不做一些体力劳动才能使您的项目正确。我会采用以下两种方法之一,这些方法需要您编辑 .wixproj 文件:

  1. 使用 HeatProject任务。您必须对所有引用的项目执行此操作,它会为您提供所有项目的单独 .wxs 文件。在此之后,在基于 WIX 的设置的功能中引用这些文件中的组件组。

    <Target Name="BeforeBuild">
    <HeatProject ToolPath="$(WixToolPath)" AutogenerateGuids="true" OutputFile="OutputFile.wxs" SuppressFragments="true" Project="ReferencedProject.csproj" ProjectOutputGroups="Binaries" />
    </Target>
  2. 使用 HeatDirectory任务。以下将提取项目 bin 文件夹中的所有内容,包括引用项目的任何二进制文件,并为您提供一个包含 UniqueComponentGroupName 的单个 .wxs,它可以包含在任何功能中。

    <Target Name="BeforeBuild">
    <PropertyGroup>
    <DefineConstants>BINFOLDER=PATH\TO\YourProject\bin\$(Configuration)</DefineConstants>
    </PropertyGroup>
    <HeatDirectory OutputFile="OutputFile.wxs" Directory="PATH\TO\YourProject\bin\$(Configuration)" KeepEmptyDirectories="true" DirectoryRefId="INSTALLFOLDER" ComponentGroupName="UniqueComponentGroupName" SuppressCom="true" SuppressFragments="true" SuppressRegistry="true" SuppressRootDirectory="true" GenerateGuidsNow="true" ToolPath="$(WixToolPath)" PreprocessorVariable="var.BINFOLDER" />
    </Target>

关于c# - 获取 WIX 以在项目中包含引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19689633/

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