问题标签 [wix3.8]

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 投票
2 回答
142 浏览

visual-studio-2010 - 如何调整/自定义 Visual Studio/MS 构建过程以在成功构建后执行我的新目标?

我创建了一个自定义任务来获取我在 MSBuild 中构建的程序集的三部分版本号。

<Target Name="GetVersion">为此创建了一个自定义,它运行良好 - 由三部分组成的版本号 ( 1.5.2) 存储ThreePartBuildNumber在 MSBuild 中的一个属性中。

但是,我如何告诉 Visual Studio 2010 中的 MSBuild 在编译我的程序集后以及在创建我的 WiX 安装项目之前调用这个目标(我想在其中Product/@Version自动将 WiX 安装脚本设置为这个由三部分组成的版本号)?

如何将这个新目标“插入”到通常的 VS 2010 构建过程中?

更新:

好的,我已经设法将它放入*.wixproj文件中,这也是一个 MSBuild 文件,真的。在 中<Target Name="BeforeBuild">,我可以成功确定由三部分组成的版本号,它存储在名为ThreePartVersionNumber.

但是,我现在如何才能在我的 WiX 设置中访问这个正确填充的 MSBuild 属性呢?我尝试设置<Product Version="$(var.ThreePartVersionNumber) ...>,但这不起作用 - 它似乎没有找到变量....也不适用于sys.orenv.前缀......

那么如何使这个具有我需要的信息的 MSBuild 属性对 WiX 安装程序脚本/XML“可见”?!?!?!?我似乎看不到所有这些尖括号的森林.....

0 投票
1 回答
667 浏览

wix - WiX installer Bundle Launch App after install

I have one bundle that includes PackageGroupRef for NetFx45Web, one ExePackage for needed driver and MsiPackage for my app. I want to launch my app after whole installation process completes. I tried using

in my app MsiPackage but it starts the app before installation is complete(when MsiPackage completes).

0 投票
1 回答
684 浏览

wix - Windows Server 2012 R2 上 IIS8.5 的 Wix 先决条件检查失败

尽管我已经使用服务器管理器删除了 Windows Server 2012 R2 上的 Web 服务器 (IIS) 角色和功能,但我的 Wix 安装程序先决条件检查显示 IIS 已安装。

我正在使用以下注册表项进行先决条件检查

是否有任何键或其他内容表明需要使用服务器管理器将 IIS 添加为角色(启用/注册)?

任何帮助都将受到高度赞赏,因为我正在处理发布错误。

谢谢

编辑:

我的要求是检测是否安装了 IIS。但在 Windows Server 2012 R2 上,默认情况下 IIS 可用,并且始终存在以下键。HKEY_LOCAL_MACHINE\Software\Microsoft\InetStp 安装程序会在发现目标计算机上缺少所有或部分先决条件时显示先决条件对话框。因此,当用户从服务器管理器中删除 Web 服务器 (IIS) 角色/功能时,我需要在先决条件对话框中显示 IIS 未安装。同样,我需要某种方式表明未安装 IIS。

可能我的第一个问题不清楚,所以现在尝试详细说明我的要求,希望它不会令人困惑。请随时澄清。

感谢所有的帮助!

0 投票
0 回答
97 浏览

visual-studio-2013 - VS2013 不会打开 wix 文件 (.wxs) - 挂在“打开文件”上

安装了 wix3.8 并尝试在 vs2013(更新 3)中打开 .wxs 文件(Wix 项目)。弹出“打开文件”出现并挂起。也尝试使用 wix37。试图重新启动VS2013。有没有人遇到过

0 投票
1 回答
757 浏览

iis - WiX 3.8 安装 IIS Express 和 SQL Server LocalDB 2012

我正在尝试使用 WiX 3.8 构建一个引导程序应用程序,它将安装 IIS Express 8 和 sql server 2012。我看到了下面的链接,但他们没有使用捆绑包,答案仅适用于我并不真正需要的 sql 2012 部分。我发现的所有“教程”似乎都非常过时 - 基于旧版本的 wix。有没有人有什么建议?这是我所得到的。无论如何,我似乎也找不到使用答案文件或类似的东西静默安装 IIS 或 SQL Server 或 LocalDB。最终目标是不为这些安装提供除 wix 之外的 UI。

如何使用 WiX 安装 IIS Express 8 和 SQL Server 2012?

0 投票
1 回答
1738 浏览

wix - Wix Installer - 捆绑从多个文件创建一个文件

这是我的 bundle.wxs 的代码 我有另一个项目正在创建 AppInstaller.msi 文件,并且我有许多 3rd 方,如 .NET 4.5 和 c++ 可再发行组件。

1:如何从所有文件中创建一个 setup.exe 文件?

2:如何创建包含所有文件的子文件夹?

更新:为了创建一个子文件夹,只需添加属性 Name=""

所以

变成这样:

0 投票
1 回答
1792 浏览

wix - WiX Burn 托管引导程序如何处理强制重启?

我正在使用WiX Burn创建托管引导程序应用程序。我需要处理一些可能需要强制重启的 ExePackage 元素。这个问题有一些关于如何处理重启的诱人线索,但我无法让它工作。

我有<ExitCode Value="3010" Behavior="forceReboot" />元素ExePackage,我可以在日志中看到触发。我正在收听and 设置Shutdown引发的事件,尽管我还没有弄清楚如何捕获在应用阶段检测到强制重启时应该何时发生这种情况的条件。我正在测试直接进入自定义 UI 的进度条部分的方法,但我不确定如何从中断的地方恢复应用阶段。我需要打电话还是在这种情况下?是否需要采取一些特殊措施来保持和恢复状态以在重新启动后继续存在,或者 Burn 引擎是否在内部处理所有这些?BootstrapperApplicatione.Result = Result.Restartif (Command.Resume == ResumeType.Reboot)RunBootstrapperApplicationEngine.Detect()Engine.Apply

如果有人能指出一个处理重启的 WiX Burn 托管引导程序应用程序的工作示例,我将不胜感激。

0 投票
2 回答
2003 浏览

windows-7 - Windows Installer 只是在我背后将我的安装更改为 ALLUSERS=1

我发现 WiX 3.8 和 Windows Installer 存在一个奇怪的问题。

我创建了一个 Outlook 插件,我希望没有管理员权限的最终用户能够在他们的机器上安装它。

因此,我仔细确定

  • C:\program files在安装期间不要写入任何系统级目录(如等)
  • 不要写入任何系统级注册表项(如HKEY_LOCAL_MACHINE

在我的 WiX 脚本中,我确保设置ALLUSERS=0并设置我找到的所有其他相关属性perUserlimited

我原以为这会起作用-但是在我的测试系统上,使用普通的标准用户帐户(没有管理员权限),我的安装失败了-消息对话框告诉我我没有足够的权限为所有用户安装它...。

怎么回事?我特别想为**只是这个*用户安装这个 - 不是机器上的所有用户!

查看 MSI 日志,我看到了令人惊讶的事情:

MSI (c) (B0:B4) [18:08:08:543]:注意:1:2262 2:AdminProperties 3:-2147287038
MSI (c) (B0:B4) [18:08:08:543]:机器策略值“AlwaysInstallElevated”为 0
MSI (c) (B0:B4) [18:08:08:543]:用户策略值“AlwaysInstallElevated”为 0
MSI (c) (B0:B4) [18:08:08 :543]:使用用户权限运行产品'........':未分配。
...
MSI (c) (B0:B4) [18:08:08:543]:属性更改:修改 ALLUSERS 属性。它的当前值为“0”。它的新值:'1'。

*究竟为什么Windows Installer 决定将ALLUSERS属性更改为1?!?!? 我从来没有告诉过它!嘘……

有任何想法吗?想法?指针?

0 投票
3 回答
834 浏览

wix - 卸载 Bundle 会导致安装 msi

我有两个 Wix 项目 - 一个创建 MSI,另一个将其引导到 exe 中。

使用 exe,我可以毫无问题地安装应用程序,但是当我尝试卸载应用程序时,我会再次获得安装程序的设置菜单并尝试再次自行安装。

如果我取消重新安装并尝试再次卸载,它会按预期工作。

如果我使用 msi 执行相同的工作流程,它会按预期工作。

这是我的引导程序的样子:

有任何想法吗?

更新

根据建议,我已将捆绑包修改为以下内容(将 EnableFeatureSelection 设置为 no),但它仍然显示相同的行为。

更新#2

我注意到,当我第一次卸载并启动安装设置时,如果我取消设置,它会失败,但它已经删除了所有文件和注册表项。第二次运行卸载从添加/删除程序中删除条目(成功)。

更新#3

这是 msi 的 UI 序列

0 投票
1 回答
71 浏览

wix - Wix 升级问题

这是我想要实现的场景。但我没有实现这个的好主意。

假设有人得到了安装程序并今天安装它。明天有人得到一个更高版本号的新安装程序,想在同一台电脑上安装它。更高版本的安装程序需要做以下事情。

  1. 应该有一个对话框让用户选择要升级的模块。
  2. 根据用户的选择更新这些模块,但不要删除用户未选择的其他模块。

我已经尝试使用Majorupgrade元素来实现这一点。但它总是删除我们没有选择的模块。见下文:

例如,在之前的版本中,我们选择了要安装的功能 A功能 B。而在新版本中,我们只选择特征 A进行更新。特征 a更新成功,但同时删除了特征B。

有没有人有一个好主意来实现这个?

提前致谢