问题标签 [wix3.11]

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

wix - WiX/MSI 安装程序成功运行以卸载应用程序,但尚未卸载该应用程序

我使用原始作者的这个Wix Toolset Visual Studio 2017 Extension为我的项目创建了一个Wix安装程序。安装程序成功安装了应用程序,但是当我再次运行安装程序以卸载应用程序时,安装程​​序如预期的那样首先显示修复或卸载应用程序的选项。Visual Studio 2017Rob Mensching

当我选择Uninstall选项时,它成功运行,表明它正在卸载并最终显示Finish按钮,但是当我进入我的Windows 10菜单时,应用程序仍然存在并且仍然照常工作 - 这显然意味着它没有被卸载。

我什至重新启动了计算机,看看这是否有什么不同,但该应用程序仍然存在并照常工作。问题:发生这种情况的原因可能是什么 - 补救措施是什么?

注意:我使用的是最新的version3.11 的 Wix

更新

这是一个VSTO 加载项。现在它的工作方式如下:我从 Windows 的 Add\Remove 程序中手动卸载了它,然后使用Wix/MSI. 然后当我再次卸载使用Wix/MSI它成功卸载它。问题:为什么最初使用时没有卸载Wix/MSI

0 投票
1 回答
179 浏览

visual-studio - 使用 Visual Studio 2017 从 WIX 3.5 迁移到 WIX 3.11.1

我的项目即将开始对我们的项目进行大规模升级,我们将从 Visual Studio 2010 跳转到 Visual Studio 2017。目前,我们项目的 msi 是使用 Wix3.5 构建的。

作为一个实验,我们尝试用当前的 wix 打开我们的解决方案,它说 wix 项目不兼容,这是我们所预料的。

于是,我们安装了wix 3.11,再次打开解决方案,还是说有兼容性问题。

我们在这里试图理解的是,我们是否需要在我们的 wix 项目上执行一个额外的步骤,以使它们与较新版本的 wix 兼容?如果是这样,我们需要做什么?

0 投票
1 回答
144 浏览

wix - DropOnUninstall 不在 SqlDatabase 标记中删除数据库

我正在为产品创建一个 WiX 安装程序,它需要创建一个数据库,并且一些表是 MSSQL。一切似乎都安装得很好,但卸载时没有任何东西被丢弃。

这是所有创建发生的部分(更改为通用名称):

正如我所说,“核心”数据库已创建,所有表都是在安装时创建的。当我去卸载时,虽然没有任何东西被删除,但如果我进入 SQL Server Management Studio,一切都还在那里。

这是 MSI 日志的输出,但它似乎并没有给我太多有用的信息。

0 投票
1 回答
300 浏览

visual-studio-2017 - 在 WiX 3.11 / Visual Studio 2017 上自定义 WixUI_Minimal

我正在尝试使用 Visual Studio 自定义 WiX 3.11 上设置的 WixUI_Minimal 对话框。

此处的手册不再起作用,因为它报告了很多重复的符号。例如:

(这个堆栈溢出问题遇到了同样的问题)

尝试此问题中的解决方案也无济于事,因为它会出现各种错误代码(与问题中提到的不同)。

这个问题这个问题也没有帮助。

Wix 3.11 / Visual Studio 2017 中似乎出现了问题。有没有人设法理解如何修复它?我有点担心 WiX 正在失去其作者的支持......

0 投票
0 回答
327 浏览

wix - WIX-MSI:如果 msiexec 被杀死,密码启用卸载失败

我们有一个 wix msi 项目和自定义操作 dll。卸载时,它会启动自定义操作以询问用户密码并验证密码以允许卸载。

自定义动作

自定义动作调用

自定义操作 在内部创建 MFC 对话框并验证密码。 自定义操作的一部分

问题: 此自定义操作运行良好并正确验证了密码。每当开始卸载时,Windows 都会在用户上下文中启动进程 msiexec.exe。现在有 2 个 msiexec.exe 进程,1 个在系统中,另一个在用户上下文中。卸载时,当显示密码对话框时,如果用户从用户上下文中终止 msiexec 进程,密码对话框将关闭并且卸载成功而无需验证密码。

谁能帮我解决这个问题?请随时提出任何更好的选项来处理受密码保护的卸载。

自定义操作的卸载日志

0 投票
1 回答
128 浏览

wix - 在 IIsExtension 源 wix3-wix3111rtm 中找不到 ja-JP.wxl 错误消息

环境:Windows 10、Wix3.11.1、Visual Studio 2017 社区。

我想找到一种方法来点亮我的 wix 对象,而无需 wixIISextension 中的多个 ja-JP 本地化消息。我在 3.11.1 源代码的 en-us.wxl 中找到了正确的消息。但不在 ja-JP.wxl 中。

下面是我的 VS 2017 创建的 light cmd。

错误 LGHT0102:本地化变量 !(loc.ConfigureIIsExec) 未知。请确保已定义变量。2>C:\agent\_work\8\s\src\ext\IIsExtension\wixlib\IIsExtension_Platform.wxi(18,0): 错误 LGHT0102: 本地化变量!(loc.ConfigureIIs7Exec) 未知。请确保已定义变量。2>C:\agent\_work\8\s\src\ext\IIsExtension\wixlib\IIsExtension_Platform.wxi(19,0): 错误 LGHT0102: 本地化变量!(loc.StartIIS7ConfigTransaction) 未知。请确保已定义变量。2>C:\agent\_work\8\s\src\ext\IIsExtension\wixlib\IIsExtension_Platform.wxi(20,0): 错误 LGHT0102: 本地化变量 !(loc.RollbackIIS7ConfigTransaction) 未知。请确保已定义变量。2>C:\agent\_work\8\s\src\ext\IIsExtension\wixlib\IIsExtension_Platform.wxi(21,0): 错误 LGHT0102: 本地化变量 !(loc.CommitIIS7ConfigTransaction) 未知。请确保已定义变量。2>C:\agent\_work\8\s\src\ext\IIsExtension\wixlib\IIsExtension_Platform.wxi(22,0): 错误 LGHT0102: 本地化变量!(loc.WriteIIS7ConfigChanges) 未知。请确保已定义变量。2>C:\agent\_work\8\s\src\ext\IIsExtension\wixlib\IIsExtension.wxs(56,0): 错误 LGHT0102: 本地化变量 !(loc.msierrIISFailedCommitInUse) 未知。请确保已定义变量。\agent\_work\8\s\src\ext\IIsExtension\wixlib\IIsExtension.wxs(56,0): 错误 LGHT0102: 本地化变量 !(loc.msierrIISFailedCommitInUse) 未知。请确保已定义变量。\agent\_work\8\s\src\ext\IIsExtension\wixlib\IIsExtension.wxs(56,0): 错误 LGHT0102: 本地化变量 !(loc.msierrIISFailedCommitInUse) 未知。请确保已定义变量。

当我从 GitHub(https://github.com/wixtoolset/wix3/releases/tag/wix3111rtm)下载源代码时,我想我找到了无法使用 IIsExtension 点亮代码的原因(这使得 ApplicationPool 在本地 IIS ) 在 \src\ext\IIsExtension\wixlib 中,我在 en-us.wxl 中找到了一条消息“msierrIISFailedCommitInUse”,但在 ja-JP.wxl 中没有。

如果我的假设是正确的,也许我应该以某种方式尝试替换安装在本地计算机中的 Wix 工具集的消息列表......但是如何?还有其他想法吗?

尝试暂时用美国语言点亮我的项目可能是明智之举,但该项目包含许多日文名称文件....

PS1 我试图设置几种文化(阅读http://wixtoolset.org/documentation/manual/v3/howtos/ui_and_localization/specifying_cultures_to_build.html),但错误仍在继续。 在此处输入图像描述

0 投票
0 回答
787 浏览

msbuild - 蜡 Nuget 包

所以这是场景:我有几个 wix 项目,它们具有完全相同的额外 msbuild 目标和任务来自动化一些非常繁琐的任务:比如构建帮助文件和使用 signtool.exe 对 msi 和输出文件进行身份验证。

每次我进行修复时,我都厌倦了将这些脚本的更改复制到 5 个不同的存储库中。所以我很聪明,我把它们变成了 nuget 包,在 build 文件夹中有一个 .targets 文件。一个简单的 nuget 还原将一揽子软件包转换为目标文件。

问题 Wix v3 不喜欢软件包。它不支持包引用,所以 packages.config 看起来很像。除了 Visual Studio 不喜欢 packages.config 之外。它会很高兴地恢复包(到我用 nuget.config 指定的文件夹中),但不会自动导入任何 .targets 文件。

很容易修复:我刚刚在我的 wixproj 文件中添加了一个导入语句。除了 Visual Studio 在运行还原操作后不会自动重新评估 wixproj 之外。我们可以解决这个问题,但是在包更改时必须构建、卸载项目、重新加载项目和重新构建真的很烦人。

所以我尝试修复它, 我爬取了标准 C# 项目构建的日志输出并发现了 Nuget.Targets 文件,该文件可以导入到项目中以提供packrestore定位。它还让我可以转换为 packagereferences,它比 packages.config 更方便且不那么混乱,但我仍然必须手动为 nuget.g.targets 和 nuget.g.props 文件添加导入语句restore目标。

而且,由于我必须手动导入这些文件,我马上回到构建、卸载、重新加载、重建工作流程。

第 2 次尝试 我通过大量的互联网搜索发现 msbuild 最近/restore在他们的命令行实用程序中添加了一个标志,专门用于在恢复包后强制重新评估项目。这适用于命令行,但视觉工作室似乎一无所知。(可能是因为 wix v3 在 Visual Studio 模板中的幕后操作?)无论如何,他们在问题说明中提到,他们实际上是在使用具有新全局属性的 msbuild 任务来强制重新评估。所以我试图在我的wixproj的预构建事件中添加这样一个步骤,但没有酱汁。

问题

我如何告诉 Visual Studio 在运行恢复后重新评估这个 wixproj?我需要将某种属性或项目组添加到 wixproj 吗?我可以在构建过程中插入某种目标吗?


更新1:

找到了一个看起来很有希望的项目属性:UseHostCompilerIfAvailable,但它不起作用。仍然遇到同样的问题。

0 投票
1 回答
139 浏览

wix - 如何使用 Wix 基于 CheckBox 有条件地卸载先决条件?

安装我的应用程序时,它将检测先决条件并根据需要安装它们。因为我不希望(通常)卸载先决条件,所以我将“永久”属性设置为“是”。这是使用 Bootstrapper 中的以下 ExePackage 完成的。

这工作正常,没有任何问题。我想要做的是有条件地卸载先决条件。基于用户选择一个复选框,必备的 ExePackage 也应该被删除。我尝试将 Permanent 更改为条件,但编译器抱怨它不是有效的 yes/no 类型。我知道我已经看到安装程序删除了“所有组件”选项,这会删除其他应用程序,所以我认为这一定是可能的,但我不知道这是如何完成的。

0 投票
0 回答
216 浏览

wix - 为 Wix 安装程序部分本地化重新启动管理器对话框

我们有一个产品的旧版 InstallShield 安装程序,我们正在将该产品移植到 wix 安装程序。

我仅在 ARP 卸载期间观察到重新启动管理器对话框中的本地化不当行为,其中只有描述部分正在本地化,而单选按钮下方的文本未本地化。最后截图。

但是在 InstallShield 安装程序中它是正确的。对于这种不一致的行为,我无法追踪我的 wix 安装程序中缺少的内容。

我尝试检查此重新启动管理器对话框本地化字符串是否来自 Wix 或操作系统。

我尝试检查此对话框字符串是否在 InstallShield 安装程序的字符串表中可用,但找不到。Wix 中的 WixUI_en-us.wxl 中都没有。

所以我的理解是这个对话框来自操作系统,但问题是为什么它只部分本地化。

我在我的安装程序中自定义了“WixUI_InstallDir”,如下所示。

所以我在 WixUI_InstallDir1 中包含了下面的 MsiRMFilesInUse 对话框。

通过包含此内容,“正在使用的文件”对话框可见并在从 MSI 卸载时进行本地化,但从 ARP 卸载时重新启动管理器部分本地化。

我希望重新启动管理器对话框完全本地化,但下面的单选按钮文本没有本地化。下面附上截图。

在此处输入图像描述

0 投票
2 回答
1736 浏览

wix - 指定帐户的 MSI 重新安装问题已存在错误

我们在 WiX 中有 2 个安装程序源,可以为具有相同产品版本、GUID 和包 GUID 的单个产品创建安装程序。

这 2 个安装程序项目将产生不同的输出,一个输出只是一个 MSI 文件 ( File1.msi ),而另一个项目输出是具有不同 MSI 文件名( File2.msi ) 的 CD-ROM 结构。

所以现在当我们使用单个 MSI 文件安装产品时出现问题,如果我们从其他 CD-ROM 输出调用 MSI,我们最终会得到下面提到的错误。

WiX 对话框

我尝试为两种安装程序输出保持相同的 MSI 文件名,然后上面的错误对话框已解决,但修复功能不起作用。

如果在产品的目标文件夹中删除了某些文件,则会显示指向 CD-ROM 安装程序源文件夹的源文件未找到错误。

请帮助我哪里出错了。我想支持没有此错误的修复安装。