问题标签 [wix3.5]

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

wix - WIX:使用 .NET 消息文件创建 EventSource

我正在使用 WIX 为我的应用程序创建安装程序。到目前为止一切正常。但是,我试图在安装过程中创建一个新的事件源,但这并没有按预期工作。

我已经在 SO 上阅读并理解了这个问题,但是我的情况有些不同,在这种情况下,给定的解决方案似乎无法正常工作。以下是不同的做法:

  1. 我正在使用WixNetFxExtension来确定是否安装了 .NET 3.5 作为启动条件。
  2. 我正在使用WixUtilExtension为 32 位/64 位构建配置东西,如此处所述

我想做的是:在进行 32 位安装时使用 32 位框架的事件消息文件,否则使用 64 位框架的事件消息文件。

上述链接的 SO 问题中的一条评论建议使用以下内容让系统使用 32 位框架的事件消息文件:

我对此进行了修改以考虑两种类型的设置:

在文件的开头,相同的<?if ...条件起作用,相应地更改产品和文件夹名称。

该代码上方的某些行我使用以下代码来允许 .NET Framework 检测:

当我运行安装程序时,似乎一切正常,事件源也被创建,我也可以从我的应用程序中使用它,但是,我仍然得到找不到事件消息文件的信息。检查注册表我发现消息文件的路径丢失:

我希望 32 位/64 位框架的路径也存在,但它似乎没有预先设置。

我在这里做错了什么?

0 投票
1 回答
1101 浏览

windows - 使用 WiX 动态更新 app.config 文件

我有一个使用 WiX 构建的 msi。安装程序的一部分会收集一些设置,这些设置将输入到已安装应用的 app.config 文件中。

现在,如果我<util:XmlFile ...为 wxs 文件中要更改的每个设置定义它,它就可以正常工作。

现在我的问题是:有没有一种方法可以动态创建这个 util:XmlFile 标记(例如,从自定义操作),这样我就不必将它硬编码到 wxs 中,以便为 app.config 更新的每个设置.

0 投票
1 回答
1031 浏览

c# - WiX 3.5.2030.0 CreateDatabase 使用 DTF 外部 UI 处理程序失败,出现 1603,无需外部 UI 处理程序即可工作

我在 Windows 7 上有一个简单的 WiX (3.5.2030.0) 安装程序(根据 msiexec.exe 的属性,Windows Installer 5.0.7600.16385),它使用提供的自定义操作来创建 SQL 数据库。当我自己运行 MSI 或在 C# 设置引导程序中的事务中运行它(使用 DTF 进行互操作)时,它可以正常工作。

当我在引导程序中运行 MSI 并在外部 UI 处理程序中挂接时(工作中唯一的代码更改是这样的调用:

),但是,CreateDatabase 调用失败。SQL 日志中没有任何相关内容 - 它显示正在启动的数据库。SQL Profiler 中没有任何相关内容 - 它显示 CA 检查数据库的存在,然后在创建失败后尝试删除。以下是调试详细日志显示的内容:

请注意,日志没有显示有用的 SQL 错误代码 - 只是(一如既往地无用)1603 错误(翻译:有些东西坏了)。

外部 UI 处理程序中的挂钩与运行数据库创建有什么关系?

我知道这个问题与我的外部 UI 处理程序代码有关,因为如果我用“返回 MessageResult.None”将它短路,那么一切正常。

我的顶级处理程序代码如下;它基于http://msdn.microsoft.com/en-us/library/aa368786(VS.85).aspx

因为还没有实现完整的 UI,现在只是进度部分,我返回“None”,这样内部 UI 仍然会触发。显然,这需要在生产前进行更改。MessageBox 调用也是如此,在生产代码中可能会有不同的处理方式。

谢谢!

0 投票
1 回答
210 浏览

xml - 如何在 Change-mode (WiX 3.5) 中删除 XML 修改

我创建了一个具有多种功能的 WiX 3.5 安装程序。一项功能执行一些工作正常的 XML 更改。我读过这些更改可以在使用永久属性卸载应用程序时撤消。

现在想象以下情况:用户安装整个应用程序。功能 1 做了一些 XML 更改。现在用户在维护模式下重新启动 MSI 以删除功能 1。通过删除功能 1,XML 更改也应该被删除,但它们不是

那么如何说服我的 MSI 以这种方式删除 XML 更改呢?

0 投票
2 回答
691 浏览

wix - OpenFileDialog fails on Win7

My installer needs to open a file browse dialog. As there is no file browse dialog provided by WIX I have written a C# dll containing a method to invoke the standard OpenFileDialog when called by a Custom Action. However while this works fine in Win2003 the Custom Action just hangs when run on Windows 7. It seems to get as far as the ShowDialog() call then stop. As a test I have written a separate Windows Forms app with a single dialog and button to invoke the OpenFileDialog and, as expected, that works fine. I just can't get the OpenFileDialog to appear from within my msi!

I suspect it may be a security thing so I ran the installer from msiexec opened as Administrator but with no difference!

Does anyone have any ideas how to fix this?

Many Thanks.

0 投票
1 回答
1056 浏览

wix - wix 组件条件评估

如果正在安装另一个功能(不是组件的父功能),我有一个需要安装的组件。

在 CostFinalize 操作期间似乎评估了组件条件,因此我创建了一个属性并设置该属性的值,然后我使用自定义操作强制执行 CostInitialize 操作

但是组件仍然没有安装,有什么线索吗?

0 投票
3 回答
10816 浏览

visual-studio - 如何排除文件被加热(WiX 3.5)收集?

我想通过使用 heat.exe 来收获一个包含大量文件的文件夹。但我不想收集所有文件,而是想排除特定的文件扩展名,如“*.txt”或类似的东西。我怎样才能做到这一点?

0 投票
1 回答
1141 浏览

wix - WIX 使用属性创建文件夹

在 WIX 中,我有一个对话框,用户可以在其中从本地计算机中选择一个文件夹 [CUSTOM_FOLDER],设置完成后,我必须共享该文件夹并将一些文件复制到其中。我如何使用 WIX 3.5 进行存档?

0 投票
2 回答
1090 浏览

wix - 删除许可协议而不复制 WIX3.5 中的所有其他对话框

我知道从 WIX 中显示的对话框序列中删除 LicenseAgreement 对话框的方法。但是在我更改 Mondo 或 InstallDir wxs 文件后,我需要在我的 WIX 项目中包含 Mondo 或 InstallDir 使用的所有其他对话框。这是相当多的文件。

有没有其他方法可以方便地更改安装对话框顺序?我错过了什么吗?

0 投票
1 回答
381 浏览

wix - 帮助确保使用引导程序但进行升级

我们有一个我们在 WiX 3.5.2030.0 中创作并针对 Windows Installer 4.0(用于MSIUSEREALADMINDETECTION支持)的 MSI。我们在 MSI 中定义了一个属性来强制使用引导程序(我说“强制”,但它确实是“非常强烈地鼓励”):

当我们将生成的 MSI 作为新安装运行时,一切正常。但是,当我们将其作为升级运行时,传递给安装程序的属性似乎在某些时候“丢失”了。日志显示以下相关条目:

我对此进行了一些搜索并查看了登录信息WiLogUtl,至少发现它Property(N)表示“嵌套”属性,但我不知道当我直接通过运行 MSI 时嵌套是什么msiexec。然后,我不知道为什么当客户端和服务器值正确时嵌套属性设置不正确。我该如何解决这个问题?