问题标签 [wix3.8]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1365 浏览

windows - 在 WiX 中设置 DCom 安全设置

我需要通过我的安装程序设置 dcom 安全性,并且想知道在 WiX 中是否有本地方式来执行此操作。我希望通过以下对话框授予我在安装时创建的用户访问和启动和激活权限:

在此处输入图像描述

我通过转到控制面板-> 管理工具-> 组件服务来访问它。右键单击我的电脑-> 属性并转到 COM 安全选项卡。

我必须创建一个自定义操作来执行此操作吗?

0 投票
2 回答
4455 浏览

wix - 如何在welcomeDlg之前插入自定义对话框而不弄乱UI序列

我想创建一个自定义对话框,安排在欢迎对话框之前。自定义对话框有一个位图控件、一些文本控件和两个用于取消 (SpawnDialog->CancelDlg) 和下一步 (NewDialog->WelcomeDlg) 的按钮。没有花哨的自定义操作或设置属性。

  • 蜡版本:3.8
  • 使用 WixUI_InstallDir.wxs

我已经找到了以下问题:如何在 WelcomeDlg 之前插入自定义对话框? 尽管它被标记为已回答,但提问者会收到与我使用该答案的解决方案相同的错误消息(请参阅评论)。所以请不要将此标记为重复。

以下代码(来自 customDialog.wxs,在 WixUi_InstallDir.wxs 中带有 dialogRef)确实构建了,并且自定义对话框显示为第一个对话框,...

...但是 UI 序列完全搞砸了:

customDlg -> welcomeDlg -> verifyDlg -> welcomeDlg -> verifyDlg -> progressDlg ...

因此,单击“安装”按钮会跳转回欢迎对话框。在第二个“转”中,单击安装按钮具有触发安装的预期效果:-P

我尝试通过@Before、@After 或@Sequence(我使用 Orca 来查看 UISequence)在不同的地方安排我的自定义对话框,甚至构建我自己的 WelcomeDlg(如此处所述:http://neilsleightholm.blogspot。 de/2008/08/customized-uis-for-wix.html )。我弄乱了 WelcomeDlg 中的 InstallUISequence-Element,比如在自定义对话框之后安排它。但是(惊喜)@After="CustomDlg" 与自定义对话框中的@Before="WelcomeDlg" 具有相同的效果,再次弄乱了 UI 序列。

我考虑过用户帐户控制会导致混乱,但是 UAC 应该怎么做才能退回 MSI 的 ui 序列?对我来说毫无意义。无论如何,我尝试通过 admin-Cmd 运行 MSI,点击安装按钮时应该抑制 UAC 的任何提示。但仍然是同样混乱的 UI 序列。

提前感谢您的帮助。

0 投票
1 回答
61 浏览

wix - Remove default description of Feature element

Anyone know how to get rid of default description from the Feature element? Even if you set your description via Description attribute, this text still wouldn't go away..

enter image description here

0 投票
1 回答
2154 浏览

wix - 在 InstallFinalize 之后运行具有提升权限的自定义操作

我需要加密将在我们的实验室中使用的应用程序的 .config 文件中的连接字符串。为此,我按照此处的说明进行操作http://boettr.wordpress.com/2010/05/20/simple-way-to-encrypt-app-config-through-wix-3-5-and-vs2010-using -c代码/

只要我不将应用程序安装到 Program Files 或 Program Files (x86) 目录,工作就很好。我没有收到任何错误,但 .config 文件也永远不会被加密。我尝试设置模拟标志并将其设置为延迟运行,但在使用模拟时收到错误,它必须在 InstallInitialize 之后和 InstallFinalize 之前发生。但是,除非在 InstallFinalize 之后运行,否则自定义操作将不起作用。

我的 product.wxs 中的代码

我可以在安装后运行 encryption.exe 并且它可以工作,但在它实际执行之前我确实收到了 UAC 警告。任何帮助,将不胜感激。

0 投票
2 回答
1622 浏览

wix - 在 Wix 中合并现有的配置文件

我正在使用 WiX 3.8 并尝试在小更新时更新我现有的 .config 文件,但我很难理解如何实现这一点。

我创建了一个自定义操作来从现有配置文件中读取值,但不知道如何将它们插入到新文件中?

我关注了这篇文章:让 WiX 升级缺少项目的配置文件(以及随后的这个:如何使用 wix 将多个元素添加到 XML 配置文件中?),但设置似乎没有被以前的值覆盖,可以有人给我指点吗?

基本上我想保留用户在安装过程中输入的设置,但如果它从一个版本更改为另一个版本,则覆盖其余的配置。

0 投票
1 回答
1168 浏览

wix - 如何重新打包 Wix Burn 捆绑包?

我使用了这里提到的使用 dark.exe -x 解压捆绑包的方法

如何将捆绑包的内容重新打包回exe?以最简单的方式...(有 dll、manifest.xml 和其他捆绑特定内容)

TIA

0 投票
2 回答
372 浏览

dll - Dll 与同名的 windows-dll 混淆,导致 WiX-Setup 中的文件正在使用对话框

我使用 wix 进行了多项设置,通过设置以下属性来抑制所有“正在使用的文件”和“请立即/稍后重新启动应用程序/计算机”对话框:

但是一个带有名为“KernelBase.dll”的 dll 的产品在卸载时仍然提示使用文件对话框,列出奇怪的标准 Windows 应用程序,如 cmd、paint、notepad ......我可以按“忽略”或“再试一次”继续。卸载成功,没有留下任何文件。

问题似乎是我们在C:\Program Files (x86)\ProductName\中的KernelBase.dll与来自C:\Windows\SysWOW64\de-DE\的KernelBase.dll.mui混淆了。重命名我们的 dll 后,文件使用对话框不再出现。

我不敢相信 dll 是由它们的名字引用的。我不太了解 dll 注册,但完整路径似乎是 dll 的通用 UID,那么 Windows Installer 指的是哪个搞砸的列表?一个人不知道任何 Windows dll 的任何名称,所以我想如果有任何冲突,应该有一些东西阻止我构建(或至少使用)这样的 dll。

所以我的问题是:Windows Installer 在这里做什么?我能做些什么来取悦它,这样它就不会混淆这两个 dll。重命名我们自己的dll应该是紧急解决方案。

微星版本:5.0(.7601.17807)

操作系统:Windows 7 Professional 64bit

提前致谢。

0 投票
1 回答
1461 浏览

visual-studio-2012 - 使用 WIX 工具集进行被动安装 - 错误 2726:找不到操作:WelcomeDlg

我在本教程的帮助下为我的网络服务创建了一个 WIX 设置:http: //blogs.planetsoftware.com.au/paul/archive/2011/02/20/creating-a-web-application-installer-with- wix-3.5-and-visual.aspx

我使用了 Visual Studio 2012 和 Wix 3.8。msi 由 Wix Bootstrapper 启动。

安装工作完美,所有默认属性都设置正确,更新时从注册表中读取。

我的问题是当我使用“/passive”参数时安装被中止。无法加载对话框并且不再设置属性。以下是日志:

使用 /passive 参数时出错:

不带任何参数的日志:

我认为“/被动”参数只会在每个对话框中单击“下一步”......我错过了什么吗?

这是带有“WelcomeDlg”的 UI 的来源:

这是完整日志的链接: https ://drive.google.com/file/d/0BzpZiQoqaVUicHBabjdRNGRhWm8/edit?usp=sharing

以及没有“/passive”参数的(工作)日志: https ://drive.google.com/file/d/0BzpZiQoqaVUiVU5JUC1xYkwzc2M/edit?usp=sharing

0 投票
2 回答
2885 浏览

wix - 使用 Heat 进行收获时如何使用 bind.FileVersion?

我以前用过...

...定义一个版本变量以在我的安装程序中使用。我第一次使用 Heat.exe 将安装程序中需要的文件/文件夹(包括 MyLibrary.dll)收集到一个名为 Source.wxs 的文件中。

如果我尝试构建安装程序,我会收到以下错误:

这就像PRODUCTVERSION声明的 Product.wxs 文件看不到包含 MyLibrary.dll 详细信息的 Source.wxs 文件,但我知道这不是真的,因为如果我设置PRODUCTVERSION="1.0.0.0"然后安装程序构建和所有这些文件安装正确。

我怎样才能bind.FileVersion“看到”MyLibrary.dll?

编辑

如果我使用 Source.wxs 中的非人类友好文件 ID(见下文),我可以让它工作,但这真的是最好的解决方案吗?

0 投票
1 回答
493 浏览

wix - WiX Burn 无法在 TeamCity 构建服务器上运行

我有一个使用 Burn 的安装程序,并且在我的(64 位)开发机器上构建安装程序没有问题。在我们的(64 位)构建服务器上,我收到此错误:

[步骤 1/3] 2014-04-24 10:40:09,800 [2796] WARN JetBrains.Container.Log4netDefaultLoggerInitializer - 当前域中未处理的异常:System.BadImageFormatException:无法加载文件或程序集'file:///C: \Program Files (x86)\WiX Toolset v3.8\bin\Heat.exe' 或其依赖项之一。试图加载格式不正确的程序。

从不正确的格式警告中,很明显我发生了 x86/x64 冲突,但是在哪里呢?带有安装程序的解决方案中的所有项目都设置为任何 CPU,并且 TeamCity 中的构建参数将构建为 x64。我的安装程序项目设置为 x86,我认为这是问题所在。我尝试将安装程序设置为 x64,但随后出现如下错误:

这个 64BitComponent MyAppPool 使用 32BitDirectory 安装

我认为 TeamCity 正在尝试将 x86 Burn.exe 作为 x64 运行(因为这就是我配置构建的方式)因此出现了问题,但解决方案是什么?我需要构建到 x64,所以将构建设置为 x86 不是一个选项。