Visual studio 2010 是否可以将MSI的副本添加到其自己的应用程序文件中?

Visual studio 2010 是否可以将MSI的副本添加到其自己的应用程序文件中?,visual-studio-2010,windows-installer,Visual Studio 2010,Windows Installer,我正在制作一个可以自动更新的windows服务。计划是让控制台应用程序在有新版本的服务可用时运行。此应用程序将通过引用MSI卸载并重新安装具有新版本的服务。因此,我想在应用程序文件夹中复制MSI MSI能否在安装时将其自身的副本放在应用程序文件夹中? 如果是,怎么做 提前谢谢 这种方法最初是错误的 如果有一个新版本可用,有很多机会升级某些东西 在安装时检查它们(某些安装程序具有自动下载功能)-部分解决方案,没有自动升级机会 该服务需要发现新版本(后台线程)-需要一些开发[msi在后台静默安装]而

我正在制作一个可以自动更新的windows服务。计划是让控制台应用程序在有新版本的服务可用时运行。此应用程序将通过引用MSI卸载并重新安装具有新版本的服务。因此,我想在应用程序文件夹中复制MSI

MSI能否在安装时将其自身的副本放在应用程序文件夹中? 如果是,怎么做


提前谢谢

这种方法最初是错误的

如果有一个新版本可用,有很多机会升级某些东西

  • 在安装时检查它们(某些安装程序具有自动下载功能)-部分解决方案,没有自动升级机会

  • 该服务需要发现新版本(后台线程)-需要一些开发[msi在后台静默安装]而不是试图让.msi复制自己(这需要一些真正的黑客才能使自引用工作),我建议让新的.msi升级旧的.msi文件。然后你只需要新的.msi和旧的.msi是不必要的


    或者,您可以将内容放入
    捆绑包中(使用WiX工具集中的Burn engine),它可以通过
    捆绑包进行自动更新

    可能有比您建议的更好、更正统的方法。请看,@RobertHarvey,我以前读过这些帖子,他们建议使用单独的流程来停止和重新启动服务。他们还建议使用安装程序。这就是我试图实现更新例程的方式。您能否就如何改进我的解决方案提供更多说明?谢谢。这里有一个很好的例子:谢谢你的回复!第二个选择是我正在考虑的。我希望我的异步进程以静默方式调用我的MSI。这是我希望我的MSI在应用程序文件夹中创建其自身的副本。这有意义吗?正如罗伯在上一篇文章中提到的。答案是,没有必要保存原始安装程序本身,除非您想要反转功能。因为如果你不小心的话,这会导致无限循环。您必须在后台下载它,然后在后台执行静默安装。