问题标签 [msp]

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 投票
3 回答
15329 浏览

windows - 手动创建 MSI 补丁 (.msp)?

我们的团队最近一直在考虑向用户推出一个小的注册表修复程序,以修改一个特定的有问题的键。非常简单的东西,只需要更新注册表中的 1 个键/值。

所以目前,我们正在使用 Wix 为产品构建 .msi 安装程序。在研究 Wix 对生成 .msp 补丁文件的支持时,似乎创建 .msp 的唯一方法是一个有点过于复杂的多步骤过程:

  1. 获取原始 MSI 的副本,并编译固定 MSI 的新副本
  2. 编写一个指向两个安装程序的新 Wix 文件
  3. 使用 Candle 将 Wix 文件编译为 .wixobj 为 .psp
  4. 在原始安装程序和 .psp 的快照之前/之后运行 Torch/Pyro,或者使用 MsiMsp.exe

现在我的问题是,我不能简单地将注册表更改描述为 Wix 文件并直接将其编译到 .msp 中,而不需要步骤 1 和 4 - 这对于一个简单的更改来说是一个巨大的努力吗?

0 投票
1 回答
1323 浏览

wix - MSI 补丁 - 文件创建日期

我想修补一个 msi 安装。如果基线 msi 与当前 msi 中其他相同文件的时间戳不同,是否会被检测为已更改文件并因此包含在生成的 msp 文件中?如果是,有没有办法避免这种情况?

具体场景如下:假设基线 msi 具有 dll A 和 B,并且是在日期 X 上构建的 - 在构建过程中会生成所有 dll。新的 msi 具有更改的 dll A 和相同的 dll B,并且它是在日期 Y 构建的 - dll A 和 B 也将构建并具有时间戳 Y。B 是否包含在差异 msp 文件中?(我用蜡)

0 投票
2 回答
949 浏览

windows-installer - MSP 不会安装所有更新的文件

如果我有两个 MSI 包:

包 A) 2.0.1234 (initial_product.msi) 包 B) 2.0.2300 (updated_product.msi)

我可以在 installshield 中创建一个补丁,从这两个生成一个 MSP 以将 2.0.1234 升级到 2.0.2300。奇怪的是,updated_product.msi 中的新文件没有安装。但是,正在更新的文件会得到更新。新文件位于 AlwaysInstal 功能下。

它本质上会导致非标准安装,因为您缺少新版本中的新文件,但是您的旧文件正在使用更新版本的 DLL 进行更新。

什么会导致它们无法安装?MSP 正在以默认值 REINSTALLMODE=omus REINSTALL=ALL 运行

谢谢

0 投票
1 回答
947 浏览

windows-installer - 使用 MsiMsp.exe 构建补丁 - 目标 MSI 是否与原始 MSI 不同?

我正在为已经交付的产品构建一个 msp 补丁。该产品有大量的组件/文件。

我正在从原始目标 MSI 和升级 MSI(通过 orca 手动修改)构建补丁。到现在为止还挺好。

构建和应用补丁需要花费大量时间处理这么多文件,因此我正在考虑从两个 MSI 中删除所有未更改的文件以加快速度。我知道我可以对目标 MSI 进行一些修改,它仍然适用,但我想知道对文件/组件/目录的更改。谁能告诉我

  1. 如果删除文件首先会起作用,并且
  2. 如果我这样做的话,我是否会为进一步的补丁(无论是在基线版本还是补丁版本上构建)带来麻烦?

到目前为止,我几乎碰到了每个坑洼,我想这次我会先问一下。而且我坦率地承认我还没有完全掌握 Windows 安装程序,所以我可能完全错误地接近它。
谢谢!

0 投票
1 回答
1117 浏览

wix - MSP 安装 - 错误 2920:未为文件指定源目录

我有一个包含一个文件的基本安装,然后是两个更新该文件的补丁。已经部署了一个补丁,但我发现我应该在补丁声明中的<Family>元素上设置 SequenceStart 为时已晚。现在,当我查看 Orca 中的补丁时,新文件的序列为 2,与某些现有文件相同。

现在我有另一个要应用的补丁,但即使我正确设置了新的 SequenceStart,它也会失败并显示以下消息:

我有一种感觉,第一个补丁上的无效序列号在这里搞砸了。虽然该错误仅发生在 Windows Server 2003 中。第二个补丁安装在 Server 2008 中成功。

我被困在这里了吗?是进行全新安装的唯一方法吗?还是可能有其他原因导致错误?

(编辑)即使使用正确的中间序列号也对其进行了测试,但仍然因相同的错误而失败。所以它必须是别的东西。有没有人有任何线索?

(edit2) 使用 Windows Installer 3.1 时会引发错误,但使用 Windows Installer 4.5 时一切正常。

0 投票
1 回答
621 浏览

asp.net - 使用 MSI 和 MSP 的优缺点是什么?

使用 MSI 和 MSP 进行部署的优缺点是什么。我正在考虑使用 MSI 和 MSP 自动部署我的软件。我想了解是否有任何顾虑。以及使用 MSP 进行补丁部署的可行性

0 投票
1 回答
357 浏览

wix - Pyro 和文件排序

当我通过补丁添加新文件时,它会弄乱文件序列表,同时补丁的大小与产品安装的大小相同。我正在使用 PatchGroup 元素来克服这种行为,但随着通过补丁添加的新文件数量的增加,很难跟踪 PatchGroup 中最后使用的数字。我在 Rob Mensching 找到了这篇文章:

http://windows-installer-xml-wix-toolset.687559.n2.nabble.com/how-to-control-File-Sequence-no-in-WIX-td5933489.html#a5934096

如果我理解正确,pyro 应该自动将新文件添加到文件序列末尾。我做错了什么还是 pyro 没有按预期工作?

0 投票
1 回答
664 浏览

wix - 使用补丁卸载 msi 安装

我有一个产品安装,该产品安装了一个可卸载的小更新补丁。如果我先卸载补丁然后安装产品,或者如果我在仍然安装补丁时选择卸载产品,有什么区别吗?产品和补丁安装是使用 WiX 工具创建的。

0 投票
1 回答
507 浏览

windows-installer - 在管理员安装中使用 MSI/MSP 时的多个快捷方式

我在尝试使用 MSI/MSP 安装和修补我们的产品时遇到了一个奇怪的问题。

它是一个两步过程:

  1. 我们正在尝试使用 MSI/MSP 来安装我们的产品。在此,用户要求系统管理员通过网络使用 GPO 安装产品 MSI。

    结果:产品在用户计算机重新启动时成功安装。

  2. 用户请求系统管理员升级产品,系统管理员使用 MSP 通过网络使用 GPO 修补网络安装。

    结果:在用户计算机重新启动时,产品已成功修补一个问题。

ISSUE: 为产品创建了多个快捷方式。我们的产品有版本号和产品名称(abc 1.0、abc 2.0)。所以每次应用 MSP 时,它都会在桌面和开始菜单上创建新的快捷方式。

有人可以帮助我如何删除现有的快捷方式并在用户桌面和开始菜单上拥有新的快捷方式吗?

0 投票
1 回答
2748 浏览

memory - 内存映射中的 R0 和 R1 寄存器在哪里?

我对内存映射中程序计数器(R0)和堆栈指针(R1)的位置感到非常困惑。我认为它们在 CPU 内部,所以内存映射中没有任何位置可以显示这些寄存器。但是我的朋友坚持认为它们位于特殊功能寄存器(SFR)中,即它们位于内存映射的底部。哪个是正确答案?