问题标签 [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 回答
802 浏览

.net - Wix 3.5 和 .net 4 自定义操作不起作用

我的自定义操作程序集不适用于 wix 3.5。当我在属性中的 .net 3.5 下构建自定义操作时,一切正常,但是当自定义操作程序集目标框架的项目属性更改为 .net 4 时 - 它因 BadImageFormatException 而失败。实用程序 makefxca.exe 可与 .net 3.5 和 4.0 ca 程序集一起正常工作。

ca 程序集和来自 wix 的实用程序的配置文件如下:

自定义操作不做任何具体的事情 - 简单地显示消息框。使用 wix 3.5 的 Visual Studio 2010

0 投票
1 回答
283 浏览

wix - wix 项目中定义的所有组件是否都包含在最终的 msi 中?

当使用 Heat 自动生成时,它似乎创建了比我们实际想要的更多的组件。

比如有一个服务需要安装,所以我们要做服务注册的东西,它也是一个com组件,所以我们要做com注册。这一切都在一个 MSVC# 项目中,并且将项目包含在 wix 中的安装项目中会自动对其进行加热(我只是想为构建设置一个依赖项),并且输出包括数百个组件。

如果您想允许一些动态部分 - 比如说更改 com 注册 - 不包括所有内容 - 如 pdb 文件 - 如何最好地管理?

当您将此热量文件包含到您的项目中时,您将如何指定哪些组件构成哪些功能以及哪些被忽略?

0 投票
2 回答
6248 浏览

powershell - 从 WiX 静默执行 PowerShell 脚本会挂起 PowerShell

注意:这个问题也发布在WiX 用户邮件列表中

我正在尝试从 WiX 生成的 MSI 静默执行 PowerShell 脚本。但是,无论何时我运行安装程序 PowerShell 都会挂起。有趣的是,根据安装程序日志,PowerShell 脚本似乎运行成功。此外,如果我通过任务管理器终止 PowerShell 进程,安装程序将取消安装并回滚任何更改。

PowerShell 脚本内容

WiX 自定义操作内容:尝试 1

我的第一次尝试是使用 & 特殊字符来执行脚本。

WiX 自定义操作内容:尝试 2

我的第二次尝试是使用 -File 参数来执行脚本。

这两种方法似乎都有效,因为它们对所需的 web.config 文件进行了修改,但是,这两种方法都会挂起 PowerShell 并因此挂起安装程序。

附加信息

我修改了 PowerShell 脚本以打印出版本信息并且不执行任何其他操作。然后 MSI 日志文件显示以下内容:

此时安装程序似乎已停止,因为 PowerShell 未退出。当我使用任务管理器手动终止 PowerShell 时,接下来的几条日志消息是:

如何在不挂起 PowerShell 的情况下从 Wix 静默执行 PowerShell 脚本?

0 投票
1 回答
1010 浏览

wix - Wix - 卸载后保留文件夹

我想使用 Wix 创建一个安装程序,将某个文件复制到文件夹“ C:\Users\Your User\Documents \Visual Studio 2010\Addins\”

当我编写以下代码时:

我收到以下编译错误:

ICE64:目录 VS2010 在用户配置文件中,但未列在 RemoveFile 表中。

我该如何克服这个错误?

我知道我可以在“组件”范围内添加以下代码:

但我不希望卸载删除我没有创建的文件夹(特别是 Visual Studio 2010 一个......)

谢谢你的帮助,马克西姆

0 投票
5 回答
5551 浏览

wix - 在 WIX 项目中包含修改后的 FilesInUse 对话框

我有一个修改过的 FilesInUse 对话框。仅将其包含在项目中并在 UI 中更改引用无济于事 - 构建安装项目时出现“ICE20:标准对话框:对话框表中未找到'FilesInUse'”错误。

浏览网络我发现了一个建议——禁止对 ICE20 进行 ICE 验证。好吧,使用这样的设置构建项目可以正常工作,msi 也可以正常工作,但我不确定这是解决问题的好方法。

另一个建议是修改 FilesInUse 并从引用中删除 WixUIExtension,但据我所知,我最终会将所有需要的对话框文件复制到我的项目中。这是我想避免的。

那么,如何正确地将我的自定义 FilesInUse 包含在 WIX 项目中?

0 投票
1 回答
1601 浏览

wix - Wix - 以非管理员身份安装并添加到 GAC

我正在使用 WIX 编写安装程序,并且需要将 .dll 文件添加到 GAC。我用:

这对管理员用户来说工作得很好,但是当我从非管理员用户运行它时,安装程​​序失败并出现我没有权限的错误。

有没有办法克服这个问题?

如果我编写自定义操作,我可以从非管理员用户那里使用 gacutil 吗?

谢谢你的帮助,马克西姆

0 投票
2 回答
1024 浏览

wix - Wix - 如何自动调用 DLL 文件上的 Heat 以接收 regasm 信息

为了在安装期间模拟“regasm file.dll /codebase”执行,我们在要添加到注册表的 file.dll 上运行 Heat.exe。然后我们将生成的内容添加到我们的 installer.wxs 文件中,一切正常。

我们想自动化这个过程,这样我们就不必在每次 .dll 文件更改时手动运行 Heat.exe。相反,每次我们构建 Wix 项目时都会执行该调用。

我们该怎么做?一个代码示例将不胜感激。

谢谢,马克西姆

0 投票
2 回答
1311 浏览

iis-7 - 如何通过 WiX 3.5 检查是否存在 IIS 7 网站?

注意:这个问题也可以在WiX 邮件列表中找到。

我需要能够根据网站的描述检查是否存在 IIS7 网站。如果该网站不存在,我需要取消安装。如果该网站存在,我想继续安装。我还需要能够保存网站的站点 ID,以便在卸载过程中使用它。

出于调试目的,我对网站的描述进行了硬编码。我没有看到任何迹象表明正在 MSI 日志文件中检查网站。这是我正在使用的代码:

使用 ORCA,我可以看到 IIsWebAddress 和 IIsWebSite 表已添加到 MSI。这些值为:

IIs网站

IIsWeb地址

使用上面的代码,安装会停止并显示错误消息“未找到网站”。似乎 IISWEBSITE 永远不会被设置。不过,我知道存在“默认网站”。我知道我一定错过了什么,但是什么?

如何在 IIS 7 中简单检查网站是否存在?

0 投票
1 回答
291 浏览

wix - WIX 特征树取消选择子特征不会改变父组件的大小

在我的父组件下是三个子组件——一个网站和两个窗口服务。隐藏的子功能还具有使用 SQLCMD 执行的数据库脚本。

当我取消选择任何子功能时,它不会改变父组件的大小,即父组件的大小不会减小,它与选择所有功能时保持相同。

请指教。

0 投票
3 回答
2900 浏览

wix - 从 MaintenaceTypeDialog 中删除“更改”按钮

安装安装程序后,当用户再次单击安装程序以在维护模式下打开它时,我希望只显示“修复”和“删除”选项,而不显示“更改”选项。

我可以使用禁用“更改”按钮但我想删除它并且不想向用户显示它。

请建议这是否可能。