问题标签 [wix-extension]

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

wix - Wix Installer 开始菜单快捷方式未出现

我正在尝试使用 WiX v3.7(因为 VS2012 不再包括设置和部署项目)为 Windows 应用程序创建安装程序项目以用于学习目的。Wix 工具集已集成到 VS,我正在创建一个新的 WiX 单一安装程序设置项目。安装程序始终编译成功(图标扩展中的警告除外),它运行完美并按原样放置桌面快捷方式,但未能在 Windows 7 Professional x64 Service Pack 1 上放置正确的开始菜单快捷方式。我搜索了网络并尝试了几乎我看到的任何东西,但到目前为止还没有成功。product.wxs 文件如下,“my_guid”字符串在项目中被适当的 GUIDS 替换。显然我错过了一点,但看不到在哪里。注册表项也未创建,因此最后一个片段可能由于某种原因未执行。

0 投票
1 回答
1844 浏览

wix - 蜡引导程序

我已经使用 WPF 编写了一个托管的 wix 引导程序。实际安装步骤需要链接多个 msi/exe 和批处理文件。

在每个包的执行过程中,应显示一条消息(最好来自引导程序 UI),指示当前正在执行哪个 msi/exe 包/批处理文件。简而言之,引导程序中需要 ProgressText 我怎样才能做到这一点?

另一个问题:我不希望所有的 msi 都被打包到 bootstrapper exe 中。这是因为:每次更改 msi 时,我们都希望仅发送更新/修改的 msi,而不是整个引导程序 exe。有没有办法做到这一点?

0 投票
1 回答
585 浏览

wix - 如何使用 WiX 预处理器编译指示?

我目前正在做一个测试 WiX 项目,看看我能用它做什么。

最近,我偶然发现了这样一个事实,即我可以ProcessPragma在我的预处理器扩展中覆盖该方法以在编译时编写 WiX 源代码。有一个预处理器函数可以返回一个 xml 字符串,而编译器不会发疯,这听起来很不错。所以我调查了它,但是这个 wix-users 线程中的响应非常简短,并没有解释太多。除此之外,谷歌不会返回任何有趣的东西。因此,我挖掘了 WiX 源代码以了解更多信息。

该方法的xml文档如下:

因此,作为测试,我让XmlWriter生成了一个虚拟属性,然后返回 true。

现在,在我的 WiX 项目中实际调用它。在Preprocessor.cs中,我发现了以下内容:

这暗示使用编译指示的语法是:<?pragma prefix.name?>

但这给了我以下警告:The pragma 'prefix.name' is unknown. Please ensure you have referenced the extension that defines this pragma.

我有一种感觉,我在正确的轨道上,因为它给了我一个与 pragma 相关的警告,但老实说,我不知道我在这里做什么。这似乎是一个未知的领域。

有谁知道我做错了什么,或者指出我正确的方向?

更新

似乎我的项目是问题所在。我在另一个项目中使用了我的扩展,它就像一个魅力。

对于将来阅读本文的任何人,语法就是<?pragma prefix.name args?>参数只是一个字符串的地方。作为旁注,您不会关闭XmlWriter覆盖方法中的 。

0 投票
2 回答
638 浏览

wix - 从以前的 Visual Studio 安装程序升级到 Wix

我有一个旧的安装程序,它是一个基本的 Visual Studio 设置项目,但一段时间后我们意识到它远没有我们需要的那么复杂。所以我花了几天时间用 WiX 进行替换。

现在我当前的问题是从以前的安装升级。如果有人安装了随 VS 项目一起安装的版本之一,他们是否可以使用新的 WiX 项目?我尝试将升级代码设置为相同,但没有任何不同,它似乎认为它是一个全新的产品并尝试再次安装。

是否可以?

0 投票
1 回答
2039 浏览

wix - 如何将参数传递给 WiX 的 Bundle.wxs 中的 ExecPackage

我将 Bundle.wxs 中的批处理文件链接为“ExecPackage”。批处理文件需要一个参数/命令行参数。

如何在“ExecPackage”中传递命令行参数/参数。可以为此使用 InstallCommand 属性吗?如果是这样,有人可以给我一个小例子来说明同样的事情吗?

0 投票
2 回答
935 浏览

c# - 如何知道exe的安装路径?

我正在制作一个 C# 程序,我需要找到一些安装在计算机上的软件的安装路径。我必须处理的是,我有程序的名称(例如 Google Chrome),我有进程名称(例如 Chrome.exe)。我现在需要的是 Chrome.exe 的路径。如果我要将程序名称或进程名称作为搜索参数传递,我如何使用 C# 查找路径?实际上,我想做一个自定义操作,它会找到 chrome.exe 并调用一个链接。之后,我将使用搜索 chrome.exe 的路径,并且我想默认通过 chrome 打开一个网站。我应该怎么办..?

0 投票
1 回答
788 浏览

wix - 自定义 WiX FeaturesDlg - 实时更改 WiX UI

我想自定义 WiX FeaturesDlg,以便如果选择了特定的服务器功能,用户可以单击按钮并设置用于服务的用户凭据。我已经制定了一个解决方案,但是我注意到“选择用户”按钮不会在用户更改功能时启用/禁用 - 只有当用户单击返回然后单击下一步返回到对话框时才会重新评估. 有没有办法可以在功能更改发生时重新评估条件?

0 投票
1 回答
622 浏览

wix - WiX 3.7 UI 未正确链接

WiX 新手在这里...我已经创建了我的 WiX 安装程序包,它可以正确安装所有功能。然后我尝试使用以下内容向其添加 UI:

我链接到“light -ext WixUIExtension -cultures:en-us”。它找到了这个扩展,因为如果我用一个不存在的名称尝试它会出错,但生成的 msi 包只有 30kb。如果 UI 扩展正确链接,我认为这应该稍大一些?

当我运行 msi 时,它只提供正常的进度条,没有我期望 WixUI_Minimal 提供的其他 UI。

所有参考资料似乎都声称,当包正确链接时,您只需要一个简单的 UIRef 即可获得 UI……是否有一种已知的方法可以使链接无法正确发生而不会引发错误(即使我与-迂腐)?

0 投票
1 回答
149 浏览

wix - 在与 wixproj 相同的解决方案中引用 WiX 扩展

我编写了一个快速的 WiX 预处理器扩展,以从我们保存在根文件夹中的文件中获取一些产品版本信息。

我想将此扩展保留在与我们的 WiX 设置项目相同的解决方案中,因为它更易于维护。但问题是,在测试时,我们使用Debug配置,而在发布构建时,我们切换到Release. 这意味着我有两个扩展要处理。

我将如何告诉 WiX 根据当前配置获取一个?

我一直在查看 WiX 项目属性中的引用路径,并添加了“..\MyWiXExtensions\bin\$(Configuration)\”作为文件夹,希望它能够获取 MSBuild 属性,但事实并非如此似乎工作。

我还查看了构建事件。我可以将输出 dll 复制到我的设置项目的文件夹中,但是如果我清理我的解决方案,这不会破坏引用吗?

我正在使用 WiX 3.7 和 Visual Studio 2012。

0 投票
1 回答
408 浏览

wix - 使用 Wix 扩展时,Server 2003 上的 Wix 安装失败

我有一个使用 Wix Extensions 的 *.msi 安装:

  • WixFirewallExtension(创建防火墙例外)
  • WixNetFxExtention(在安装时创建本机图像)

尝试在 Windows Server 2003(32 位和 64 位)上安装时,此 msi 失败并出现错误“安装提前结束...”。它可以毫无问题地安装在 Server 2008/Windows 7 等上。

在构建 msi 之前删除防火墙和本机映像部分可以使其正常安装,但显然没有额外的选项。

有谁知道问题可能是什么?

这是日志文件中显示失败的部分,但没有说明失败的原因。

日志文件

其他注意事项:

  • 删除防火墙部分但保留本机映像部分仍然会导致失败,这使我相信任何使用扩展的操作都会受到影响。
  • 防火墙配置设置为忽略故障。
  • 我已确认防火墙已启用并正在运行。
  • 我尝试从管理员命令提示符安装,但这没有区别