gpt4 book ai didi

wix - 在 Visual Studio 环境中将第一个自定义对话框添加到 WIX

转载 作者:行者123 更新时间:2023-12-02 22:55:49 25 4
gpt4 key购买 nike

我正在使用 Visual Studio 构建我的 wix 文件。到目前为止,我有一个文件 Product.wxs,它可以进行简单的安装。

现在我想添加一些自定义对话框。我认为从下面的两篇文章中,我了解了如何做到这一点 - 在我设置了环境之后:

http://blog.torresdal.net/2008/10/24/WiXAndDTFUsingACustomActionToListAvailableWebSitesOnIIS.aspxhttp://www.merlinia.com/mdt/WiXTutorial2.msl

我下载了源代码,我在这个目录中看到了 35 个 *.wxs 文件wix35-sources.zip\src\ext\UIExtension\wixlib

这就是我开始迷失的地方。

  1. 我是否需要将一些文件(仅我想要更改的文件)或所有这些文件复制到我的 Visual Studio 项目中。到目前为止,我一直没有使用这些源文件来运行。

  2. 我的 Product.wxs 如何知道使用这些文件?它首先查看本地目录吗?或者我必须重建一些 C# 模块吗?

我将这些行包含在我的 Product.wxs 中,它在执行时为我提供了用户界面:

    <UIRef Id="WixUI_Mondo" />
<UIRef Id="WixUI_ErrorProgressText" />

谢谢

尼尔

最佳答案

Do I need to copy some (only the ones I want to change) or all these files to my VisualStudio Project. Until now, I have been running with none of these source files.

由于您已经在使用WixUI_Mondo ,我假设您想要自定义该 UI。定位WixUI_Mondo.wxs在 wix 源中,并将其复制到您的 Visual Studio 项目中。将文件重命名为WixUI_MyCustomUI.wxs并将文件内的 UI Id 属性更改为 Id="WixUI_MyCustomUI" 。您还不需要复制任何其他文件;复制的 UI 序列中引用的对话框作为资源编译到 wix 工具中,因此 wix 通过名称“知道”这些对话框。

在您的product.wxs 文件中,将 UI 引用更改为 <UIRef Id="WixUI_MyCustomUI" /> 。如果您现在重 build 置,UI 仍应与 WixUI_Mondo 完全相同。因为我们还没有定制任何东西。

如果有效,您可能需要自定义或添加一个对话框。同样,您可以通过从 wix 源复制现有对话框来启动它。您还必须编辑 WixUI_MyCustomUI.wxs文件,以便它使用您的新对话框。看看这个other answer我写了一个例子。

How does my Product.wxs know to use these files? Does it look at local directory first? Or do I have to rebuild some C# modules?

您没有重建任何 C# 模块。您下载 wix 源代码的唯一原因是现有的 UI 序列和对话框是很好的起点示例。原则上,您也可以忽略 wix 源并从头开始为 UI 序列和对话框定义编写这些 wxs 文件。

当您使用命令行工具时,您只需传递多个文件参数即可组合多个 wxs 文件,它们将被编译并链接在一起。如果您将 wix 与 Visual Studio 一起使用,则只需将 wxs 文件添加到项目中即可。一个不平凡的 wix 设置通常由许多 wxs 文件定义。

wxs文件的内容可以通过UIRef等元素来包含对其他wxs文件中元素的引用。 , ComponentRef , ComponentGroupRef , DirectoryRef等等。

关于wix - 在 Visual Studio 环境中将第一个自定义对话框添加到 WIX,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2052789/

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