问题标签 [wix3.9]

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 回答
143 浏览

wix - Wix 如何决定安装特定文件?

正如我在标题中提到的,问题是 Wix 如何决定安装特定文件?

所以我有 exe 文件,当我更改 exe 文件中的某些内容并重建它时,如果我不更改版本,它将不会被重新安装。但是,如果我更改了资源文件中的某些内容,即使我不更改应用程序的版本,资源文件也会被替换。那么 wix 如何决定他是否需要在升级期间替换文件。

我正在使用wix3.9。MajorUpgrade 是在InstallFinalize 之后安排的。

0 投票
2 回答
1556 浏览

wix - 如何在wix中使复选框的背景透明?

如何使复选框的背景透明或白色?

在此处输入图像描述

0 投票
2 回答
596 浏览

wix - 如何在 wix 中停止 .exe 进行修复、更新和删除?

在我的 wix 中,我使用以下声明:


我的复制:

首先,我像往常一样运行我的安装。安装后,我启动我的 Web 应用程序。.exe 像往常一样出现在任务管理器中:

在此处输入图像描述

我想在修复、更新或卸载时结束这个 .exe。所以我再次启动我的 .msi 并选择修复:

在此处输入图像描述

现在我的问题:按“修复”后,由于声明了以下对话框,我希望出现以下对话框ServiceControl

在此处输入图像描述

但事实并非如此。相反,会出现以下对话框:

在此处输入图像描述

当我记录设置时,日志显示以下几行:

在修复旁边,我还尝试了具有相同结果的更新。也许缺少任何声明?注意:当我在任务管理器中关闭 MyApp.exe 时,没有出现该消息,因此 MyApp.exe 肯定是问题的原因。

0 投票
1 回答
204 浏览

c# - 通过 Wix 工具集脚本注册 Windows 服务

我有 Wix 安装项目,它将 Windows 服务配置为在安装和系统重新启动时自动启动。在自动启动功能之前,一切都很好。我的部署过程是安装服务,通过“InstallUtil.exe”实用程序注册它,然后启动服务手册。我想自动化所有这些活动,但是当我尝试在未使用“InstallUtil.exe”实用程序配置服务的系统上安装服务时遇到问题。我收到的错误消息如下:

无法配置服务“(ServiceName)。这可能是程序包或您的权限有问题。请确认您有足够的权限来配置系统服务。

服务配置代码为:

0 投票
1 回答
338 浏览

xml - 在目标机器上安装后执行 VBscript

在所有文件都放在目标机器上之后,我正在尝试运行可执行的 VBscript (.EXE)。正在使用的安装程序是在 Visual Studio 2013 中使用 WIX 工具集制作的。我尝试了几个来自不同来源的例子,比如 technet 和这个网站。但是没有人能帮助我,因为很多这些文章/帖子都是从 2008 年左右开始的,似乎不再适用。

目前我正在使用这段代码来尝试实现我的目标:

即使编译器没有看到任何错误并且编译得很好,代码也无法正常工作。需要执行的文件放在安装文件夹中,所以文件是存在的。唯一剩下的就是在安装和/或卸载期间执行一次。

我已经搜索了很长时间的信息以便弄清楚,但我无法让它按照我想要的方式工作。如果这个问题得到解决,我最终将拥有一个功能齐全的安装程序,我可以部署它来简化控制面板的设置。

欢迎所有帮助和建议。

提前致谢,

0 投票
1 回答
395 浏览

installation - Wix - 构建安装程序包时出错 - 错误 CNDL0200(未处理的扩展元素)

您好,我在构建此 WiX 安装包时遇到问题...我正在使用 Wix utilExtensions 并将其添加到安装项目的引用中。在构建包时,我收到以下错误;

在此处输入图像描述

提供 XML 代码;

关于解决这个特定问题的任何想法?

0 投票
1 回答
756 浏览

wix - 以当前用户身份运行的 ExeCommand

我正在努力让我的安装程序启动一个新安装的可执行文件(用 C# 编写)。无论我尝试做什么,它都会记录 1721 错误。有效的是: 1. 我运行安装程序 2. 等待它失败 3. 从它安装到的位置启动 exe,使用 /l*v 生成的日志文件中记录的命令行参数

因此,该文件似乎已安装到具有所有有效数据和文件权限的正确位置。它只是没有在正确的用户帐户下运行(也许)?

有任何想法吗?

0 投票
0 回答
212 浏览

c# - 运行时修改安装文件夹 (msi) 的更好方法

语境:

所以这是一个安装旧软件的软件包。当我说老时,想想20岁。它很大,我们依赖它,我们正在编写替代品,但在准备好之前,我们将在接下来的几年里坚持使用这个旧应用程序。

问题:

msi 将通过SCCM推送,我们的 IT 部门坚持这意味着我们不能在此 msi 包中包含任何 UI 元素(例如浏览安装路径)。

该程序必须安装在:volume + ":\" + companyabbreviation。默认路径为 [WindowsVolume]company 缩写

我们还必须生成一些空文件夹以使程序正常运行,例如“ TRANSFER

为了实现这一点,在不被 ICE 警告淹没的情况下,wix xml 看起来像这样:

这按预期工作。

由于这是一个旧应用程序(从未打包而是通过自制安装程序分发),目标机器通常在获得 msi 之前进行某种“安装”。

因此,我从旧的自制安装中创建了一个用于清理的自定义操作。这也很好用。如果尝试安装,我们只需确保它仅在以前没有人通过 msi 安装过的系统上运行。

现在我们应该准备好发布了:)

除了,我们刚刚发现了我的前任?很久以前就决定,他们会告诉客户如何将程序从默认位置移动......

看,开发人员可以使用多个安装,只需通过修改一组注册表项来选择运行哪一个。

因此,基本上,开发人员确保可以将应用程序移动到另一个驱动器,例如:D:\companyabbreviation并通过注册表编辑要启动的版本。要使用哪个TRANSFER文件夹,等等,等等……

好吧,您可能会争辩说,这需要很多分区,但在公司意识到 CVS、SVN、GIT 等之前的时间里,我猜这很有意义。

后来另一位开发人员看到了这个功能,作为解决一些客户缺乏管理权限的一种方法(所以你不能在 WindowsVolume Root 上安装),并决定旧的安装程序在存在时会尊重注册表项。如果key 不存在,他会让旧的安装程序创建它,并将值设置为默认路径。

因此,多年后,现在我们的 MSI 也需要尊重这一点,如果我们的任何用户移动了应用程序......(我们已经检查过,有些人这样做......)

我们的想法是使用自定义操作来更新路径:

我们做了一个辅助函数:

和:

然后这段代码使事情发生:

显然您不允许修改会话数据库,但是我们如何才能做到这一点呢?

如果可以避免的话,我对在 wix xml 中创建属性不感兴趣。- 原因是目前 xml 是自动生成的,因为我们的开发人员(主要是工程师)不需要学习 wix,就可以维护数学代码。

如果我们必须使用 xml 中定义的属性,我们将不得不以某种方式让自定义操作知道目录节点的 ID 是什么。

假设客户决定只移动提到的 TRANSFER 文件夹:可以这样实现:

为了完成这项工作,我们必须手动修改所有这些自动生成的 wix 文件,并将“默认”路径值设置为目录树隐式设置的值.. - 或者制作一些解析 xml 的东西,找到正确的目录 ID,然后添加属性节点。

也许如果我们可以在安装时动态地将属性添加到 MSI,我们仍然可以让它工作吗?

非功能性解决方案的要求摘要:

0 投票
1 回答
162 浏览

wix - 如何在 Wix 服务安装程序中的两个用户名之间切换?

我正在使用 Wix 安装 Windows 服务,但需要选择使用 LocalSystem 帐户或使用用户提供的帐户。我应该如何在硬编码值和用户值之间切换?对于我拥有的服务:

在 UI 中,我有以下属性:

在一个对话框中,我有:

但这只会显示用户可以编辑的硬编码值。

0 投票
1 回答
339 浏览

wix - 在快速启动文件夹中创建快捷方式

WiX 中是否有任何内置功能允许我在快速启动文件夹中创建快捷方式,就像我能够创建桌面快捷方式一样?

我使用 Wix v3.9 R2。

提前致谢

问候。