标签: msp

MSP与MSI包装.哪个用于补丁?

目前我正在开发一个使用MSI包部署的项目.要修补程序,我们只需部署另一个与MSP相对的MSI安装程序包.这是一种有效/高效的方法,还是我们应该部署MSP补丁包?我有MSI的经验但不是MSP.我还将如何创建MSP补丁?我在互联网上搜寻,似乎无法找到任何东西.

提前致谢!

windows windows-installer package msp msi-patch

12
推荐指数
2
解决办法
1万
查看次数

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

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

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

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

现在我的问题是,我不能简单地将注册表更改描述为Wix文件并将其直接编译到.msp中,而没有第1步和第4步 - 这只需要一个简单的更改就可以付出巨大的努力?

windows installer windows-installer wix msp

7
推荐指数
1
解决办法
1万
查看次数

WiX:补丁安装程序取代以前的版本(1.0.0 -> 1.0.1、1.0.0 -> 1.0.2、1.0.1 -> 1.0.2 等)

我正在尝试提供一个简单的安装程序包(MSI),我希望通过取代所有以前的补丁的更新(补丁)来支持它。所以我有一个MSI V1.0.0和2个补丁V1.0.1和V1.0.2。用户应该能够只安装最新的补丁,无论系统上已经应用了哪些先前的补丁。我的项目包含 2 个功能(客户端和服务器)。补丁的基础始终是 RTM 包(HelloWorld 1.0.msi / HelloWorld 1.0.wixpdb)。

所有补丁的生成(构建)都有效,因此更新过程 1.0.0 -> 1.0.1 和 1.0.0 -> 1.0.2 可以,但是当我尝试从 1.0.1 更新到 1.0.2 时,补丁失败并显示以下错误消息:“Windows Installer 服务无法安装升级补丁,因为要升级的程序可能丢失,或者升级补丁可能会更新程序的不同版本。请验证要升级的程序是否存在于您的计算机并且您有正确的升级补丁。” 更糟糕的是,当我在已安装 1.0.2 的系统上运行 1.0.1 补丁时,该补丁会用旧版本覆盖现有安装!?我完全困惑了...

我还在网上找到了一些有关修补的博客文章,但没有任何内容适合我的替代方案。

wix 修补代码 - “patch1.wxs”:

<?xml version="1.0" encoding="UTF-8"?>
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
  <Patch
      AllowRemoval="yes"
      Manufacturer="My Company"
      MoreInfoURL="http://www.mycompany.com/"
      DisplayName="HelloWorld V1.0 Patch 1"
      Description="Patch intaller updating HelloWorld V1.0.x to V1.0.1"
      Classification="Update">

    <Media Id="32000" Cabinet="HelloWorldRTM.cab">
      <PatchBaseline Id="HelloWorldRTM">
        <Validate ProductId="yes" UpgradeCode="yes" ProductVersionOperator="LesserOrEqual" />
      </PatchBaseline>
    </Media>

    <PatchFamilyRef Id="HelloWorldPatchFamily"/>
  </Patch>

  <Fragment>    
    <PatchFamily Id='HelloWorldPatchFamily' Version='1.0.1.0' Supersede='yes'>
      <PropertyRef Id="ProductVersion"/>
      <ComponentRef …
Run Code Online (Sandbox Code Playgroud)

patch wix msp msi-patch

5
推荐指数
1
解决办法
2268
查看次数

R0和R1寄存在存储器映射中的哪个位置?

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

memory memory-management msp430 msp

4
推荐指数
1
解决办法
1631
查看次数

使用InstallShield或WiX修补多个实例安装

      我有一个在InstallShield 12中构建的项目.它是一个需要多次安装的Web应用程序,并且需要修补这些安装.

我可以在WiX和InstallShield中创建变换和补丁.
当我尝试从InstallShield修补转换后的安装时,我收到错误:

"The upgrade patch cannot be installed by the Windows Installer service because the program to be upgraded may be missing, or the upgrade patch may update a different version of the program.  Verify that the program to be upgraded exists on your computer and that you have the correct upgrade patch."
Run Code Online (Sandbox Code Playgroud)

在InstallShield中,我尝试通过"修补程序设计"选项卡将转换中的新产品代码添加到"目标产品代码列表"中.执行此操作会错误地创建补丁程序并显示错误:

"ERROR: At least one of the GUIDs '{ORIGINAL-GUID},{TRANSFORM-GUID}' defined in the ListOfTargetProductCodes property in the Properties table of the .pcp file is invalid."
Run Code Online (Sandbox Code Playgroud)

在WiX(3.5)中,我使用dark.exe将我的项目从InstallShield转换为WiX.我已经足够远,我可以为变换安装补丁,但我收到了警告: …

windows-installer installshield wix msp msi-patch

4
推荐指数
1
解决办法
1151
查看次数