【问题标题】:Make VDProj .MSI installer copy itself locally after successful install成功安装后使 VDProj .MSI 安装程序在本地复制自身
【发布时间】:2011-07-02 17:56:35
【问题描述】:

我们有跨多个项目的大型 C# 应用程序,通过在 .VDProj 文件上运行 MSBuild(或通过 Visual Studio 2010)将其打包到 .MSI 文件中。安装通常可以正常工作,如果在本地计算机上找不到其他所需的软件,则会正确发出警告。

但是,如果安装成功,我们希望安装程序将自身复制到程序文件中的某个特定文件夹中。例如'c:\program files\app\version\install_1.2.3.4.msi'。

有谁知道这样做的方法吗?

【问题讨论】:

  • 你为什么要这个?您知道 Windows Installer 的修复功能吗?

标签: c# installation windows-installer vdproj


【解决方案1】:

您可以从OriginalDatabase 属性中获取 MSI 路径。要复制 MSI,您可以使用在 InstallFinalize 标准操作之后安排的custom action

例如,您可以编写一个简单的EXE,接收[OriginalDatabase]作为参数并执行复制操作。

InstallFinalize 未显示在 Visual Studio 中。您可以在安装下添加自定义操作,并使用ORCA 编辑 MSI 以在 InstallExecuteSequence 表中的 InstallFinalize 之后更改其顺序。

您可以通过使用其他设置创作工具来更好地控制自定义操作。

【讨论】:

  • 您好,感谢您的回复。你能详细说明一下吗?我可以进入自定义操作面板,但我看到的只是安装、提交、回滚和卸载部分。在哪里可以找到 InstallFinalize 标准操作?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-01-03
  • 1970-01-01
相关资源
最近更新 更多