MSI补丁创建问题

时间:2011-06-01 13:23:09

标签: visual-studio-2010 deployment windows-installer setup-project patch

最近发布了我们产品的新版本(软件包)。为了扩展功能,我们之后开发了一个插件。现在我们想要将这些文件(两个新文件和现有文件的更新版本)作为带有MSI补丁(msp)的修补程序(或更新)进行部署。我从MSDN网站下载了一个空白的PCP文件并对其进行了一些更改。更改涉及以下表格:

ImageFamilies

PatchMetadata

PatchSequence

属性

TargetImages

UpgradedImages

所有其他表格保持空白。

然后,我设法使用此PCP文件创建一个msp文件,该文件基于软件包管理映像的两个版本,这两个版本都是从Visual Studio安装项目(VS 2010)构建的。这两个msi包之间的区别在于我替换了一个文件并添加了两个新文件,但没有别的。我没有更改产品代码(GUID),升级代码(GUID)和版本号。

然后我试图在发布的版本之上安装这个msp文件。

  1. 出现的第一个屏幕是要求修理或删除产品。这不是我们想要的。我们希望安装程序就像一个全新安装,包括显示许可协议。如何为MSI补丁定义UI?

  2. 在安装补丁的过程中,我收到如下错误信息,然后安装失败:

    Error 1001. Exception occurred while initializing the installation: System.IO.FileNotFoundException: Could not load file or assembly 'file:///C:\WINDOWS\system32\Files\BPS\TestApp' or one of its dependencies. This system cannot find the file specified.

    BPS是我们在[ProgramFilesFolder]中安装产品的文件夹。我想知道为什么MSI试图在“C:\ Windows \ system32”中搜索[ProgramFilesFolder]中安装的文件。此外,此修补程序中更改的文件位于其他位置([CommonAppDataFolder])而不是在此“BPS”文件夹中。

  3. 任何人都可以帮我解决这些问题吗?如果需要更多信息来确定问题,请告诉我。任何想法,建议和建议都会非常感激。

1 个答案:

答案 0 :(得分:0)

  

出现的第一个屏幕是询问   修理或删除产品。这个   不是我们想要的。

在升级包中增加产品版本。这样您就可以使用minor upgrade而非小更新。

您也可以尝试使用MSIEXEC命令行应用补丁:

http://msdn.microsoft.com/en-us/library/aa367574(VS.85).aspx

http://msdn.microsoft.com/en-us/library/aa367575(VS.85).aspx

  

在安装补丁的过程中,   我收到如下错误信息,然后   安装失败

安装程序中是否有使用该文件的内容?也许是自定义动作?尝试查看日志以查看哪些操作尝试访问该文件。

相关问题