【问题标题】:Creating MSP upgrade patch for my WIinForm application does not update my exe.为我的 WIinForm 应用程序创建 MSP 升级补丁不会更新我的 exe。
【发布时间】:2013-01-14 04:31:42
【问题描述】:

我有在 .NET 3.5 上运行的 winForm 应用程序。我正在使用 VS 2010,我的启动项目“WinFormUI”引用了其他库。

我使用 VS 2010(保留 .NET 3.5)创建了 MSI 安装程序,称为目标安装程序并安装了应用程序。添加/删除程序确认安装初始版本 1.0.0。安装程序属性 RemovePreviousVersion=True。

现在我通过添加 MessageBox("This is updated project") 更改我的启动项目“WinFormUI”,并将我的启动项目 winFormUi.exe 的程序集版本从 1.0.0.0 更改为 1.0.0.1。

创建了第二个升级的 MSI,并将安装程序的版本从 1.0.0 更改为 1.0.1,但保持“产品代码”相同。

按照http://www.codeproject.com/install/dotnetpatching.asphttp://social.msdn.microsoft.com/Forums/en-US/winformssetup/thread/7dda2e5f-70df-47d5-a62d-100a2bfd0394的步骤。

我有包含 MsiMsp.exe 5.0 版和 Ocra 5.0 版的 Windows SDK V7.1。

我的 PCP 文件有以下数据。

ImageFamilies 表:家庭 -> fam1

MsiPatchSequence 表:PatchFamily -> fam1;序列 -> 1.0.0

属性表:MinimumRequiredVersion -> 200 和其他列

TargetImages 表:IgnoreMissingSrcFiles -> 0 和其他列

UpgradedImages 表:Family -> fam1 和其他列

使用 MsiMsp.exe 生成 MSP 并使用 msiexec /p 运行。

它运行安装程序(补丁)。升级后添加/删除程序确认升级版本 1.0.1 但问题是我的更改在我运行我的 exe 时没有反映。即,我已修改为显示 MessageBox("This is updated project")。

我做错了吗?需要帮助。谢谢。

【问题讨论】:

    标签: visual-studio-2010 deployment .net-3.5 windows-installer msp


    【解决方案1】:

    当我通过 VS2010 中的“程序集信息”对话框更改升级项目中的启动项目 WinFormUI.exe 的“文件版本”时,问题解决了。我猜当目标 exe 的文件版本与升级后的 exe 相同时,补丁升级没有任何作用(尽管两者的程序集版本、内容和文件大小与前面描述的不同) 或者 REINSTALLMODE=dmus 在这种情况下应该可以工作。

    【讨论】:

      【解决方案2】:

      补丁基本上包含两种设置之间的差异。为了覆盖文件,必须找到差异。它以文件的日期和大小开头。这个标准可能还不够,这时候版本控制和签名就派上用场了。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多