问题标签 [wix]

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 投票
31 回答
220073 浏览

wix - WiX 技巧和窍门

我们使用 WiX 已经有一段时间了,尽管通常会抱怨易用性,但它运行得相当好。我正在寻找的是关于以下方面的有用建议:

  • 设置 WiX 项目(布局、参考、文件模式)
  • 将 WiX 集成到解决方案和构建/发布流程中
  • 为新安装和升级配置安装程序
  • 您想分享的任何好的 WiX hack
0 投票
3 回答
12752 浏览

installation - 如何在 WiX 中创建条件属性?(几乎像一个如果-那么)

我有一个安装一些 EXE 文件的 WiX 项目。一个是“主要”可执行文件,其他是帮助诊断问题的支持程序。

主可执行文件是可选的,支持程序将自行运行。通常,最终用户会安装第三方程序而不是我的主要可执行文件。

在 WiX 安装程序结束时,我想要一个“启动程序”复选框,它会在安装程序关闭后立即运行该程序。

我可以根据 INSTALLLEVEL 属性隐藏复选框,但这只会根据用户选择“典型”还是“完整”安装而改变。我想根据是否安装了主要的可执行功能来隐藏它。

像这样的东西是理想的:

0 投票
2 回答
1398 浏览

visual-studio - 帮助一步构建所有项目 + 安装程序 (.NET + WiX)

我在安装程序上有预构建事件,以使用适当的配置等重建项目。

如果我在 Visual Studio 中的 WiX (3.0) 项目上右键单击构建/重建,则一切正常,但如果我尝试在 wixproj 文件上运行 MSBuild,预构建事件将引发错误。

我可以改为在 wixproj 上调用 Candle 和 Light,但它不会运行预构建事件。

预构建事件依赖于 VS 提供的宏,除了创建另一个项目之外,我不知道如何解决这个问题,基本上只是使用项目的预构建事件,这只是尖叫 hack。

另一个问题是我需要从命令行向 WiX 输入一个自我更新的版本号。

我打算只使用一个 csproj 来处理版本号并更新它,然后只使用 MSBuild 和 Candle 和 Light,但问题是我不知道如何从硬编码以外的代码访问解决方案目录它在

0 投票
3 回答
5161 浏览

installation - Wix 重大升级

如何在“重大升级”期间使用 WIX 防止覆盖配置文件?

我希望在初始安装时安装该文件,在卸载时删除该文件,并在“主要升级”时保持不变。

谢谢

0 投票
1 回答
3325 浏览

wix - WiX:如何为所有用户创建共享?

我正在使用WiX创建安装程序,并希望在安装过程中共享一个文件夹。我想授予所有用户权限。我正在使用以下片段:

我收到以下编译时错误:“未解决对‘Product:{MY-GUID}’部分中符号‘User:Everyone’的引用。”

关于如何为所有用户创建共享的任何建议?

0 投票
1 回答
1193 浏览

wix - comctl32.msm(合并模块)在 Vista 上失败

我将 comctl32.msm 卡在安装程序(comctl32.ocx 合并模块)中。在 XP 上,comctl32.ocx 出现在 system32 中,一切正常。在 vista 上,它不起作用。任何猜测我做错了什么?

我还尝试在一个组件中用一个和很多注册表更改替换合并模块<file>,但文件没有移动,也没有进行注册表更改。

0 投票
2 回答
8142 浏览

wix - 如何为多个实例创建/在何处获取 Wix Bootstrapper

我目前正在学习如何使用 WiX 创建 msi 安装程序,看来我已经碰壁了。

当我创建一个包含单个环境所需的一切的 MSI 时,一切都很好。

我有功能和组件,并且可以安装我的 MSI。

现在我正处于想要在 SQL Server 风格的安装程序中转换它的阶段,您可以在其中支持多个实例

一开始我希望用户获得一个允许他创建新实例或管理现有实例的屏幕。(更新/删除它们)

我花了整整 2 天的时间到处寻找解决方案,但运气不佳。

我找到了以下资源,其中包含一些信息,但是它们的实例数量有限,或者没有描述如何为用户提供上述选项的引导程序。

有没有人已经使用 WiX 实现了这一点?或者任何人都可以向我指出一些关于如何实现这一目标的工作示例?

我知道 Installshield 2009 可以做到这一点,但由于这只是一种爱好,我没有钱购买它。我也想在 WiX 中进行,因为即将推出的 Visual Studio 2010 将改进对它的支持。

0 投票
5 回答
56983 浏览

wix - 如何让 Wix 更新以前安装的程序版本

我用 Wix 编写了一个安装程序,它可以很好地安装我的程序。现在我需要更新它,所以我提高了版本号,但是当我在旧程序上安装新程序时,它抱怨已经安装了旧版本并告诉我先卸载它。

如何在重新安装之前更新或自动卸载它?

0 投票
2 回答
828 浏览

wix - Wix:根据操作系统更改参数

0 投票
12 回答
22109 浏览

msbuild - 使用 MSBuild 将多个值传递给 Wix DefineConstants 属性

我目前正在将我的 Wix 项目集成到 MSBuild 中。我有必要将多个值传递给 Wix 项目。一个值将起作用(下面示例中的 ProductVersion)。

但是,如何将多个值传递给 DefineConstants 键?我已经尝试了所有“逻辑”分隔符(空格、逗号、分号、管道符号),但这不起作用。

有没有其他人遇到过这个问题?

不起作用的解决方案:

  1. 尝试添加 DefineConstants 元素不起作用,因为 DefineConstants 需要在 Properties 属性中表示。