Visual Studio 2005 -> 2008/10 服务安装程序项目升级问题

Posted

技术标签:

【中文标题】Visual Studio 2005 -> 2008/10 服务安装程序项目升级问题【英文标题】:Visual Studio 2005 -> 2008/10 Service Installer Project Upgrade issue 【发布时间】:2010-09-27 02:56:42 【问题描述】:

我已经将 [.vdproj MSI 生成器项目内置到 VS2008] System.Configuration.Install.Installer 与 ServiceProcessInstallerServiceInstaller 从 Visual Studio 2005 升级到 2008。没有任何定制对安装程序类(即,不尝试启动或停止服务或注册子级)

RemovePreviousVersions 设置为true,我正在更改VersionProductCode。这会在安装过程中触发错误:

“错误1001:指定的服务已经存在”

谷歌搜索会产生一些东西(但直到现在才出现):- Google for "The specified service already exists" 迄今为止我见过的最有用的是http://forums.msdn.microsoft.com/en-US/winformssetup/thread/b2d1bd22-8499-454e-9cec-1e42c03e2557/ 但这并不能回答基本问题:-

鉴于用户可以选择: a) 相同的安装位置 或 b) 不同的安装位置 为了确保卸载旧服务并安装新服务,明智地进行哪些最小的代码更改?或者,对于将具有相同名称(即签名)的同一服务的 v1.0.1 升级到 v1.0.2 的基本场景,是否需要更改代码来解决此问题

(只有在旧安装程序中有重要的卸载步骤而新安装程序中没有的情况下,AIUI 强命名才会发挥作用。)

我在 VS 2008 中生成了一个新的安装程序,但效果并不好。

目前,我的解决方法是停止更新VersionProductCode,当用户被告知他们已经安装了一个版本时,强制用户手动卸载。

感谢divo's 探测的附录:虽然可能可行的最简单的技巧是说“如果调用安装步骤并且它是升级,请先调用服务的卸载步骤”,我想要一个正式的祝福的答案! (例如,在升级期间重命名服务时,简单的 hack 如何应对?)

【问题讨论】:

【参考方案1】:

您的服务(设置)是否提供用于卸载服务的自定义操作?

升级意味着在安装新产品之前先卸载以前安装的产品。我认为错误的原因是无法删除旧服务。

如果您的服务是用 .NET 编写的,您可能会发现这篇文章很有用: http://www.codeproject.com/KB/install/InstallService.aspx

【讨论】:

安装程序中没有任何自定义代码 - 它只是一个带有 ServiceProcessInstaller 和 ServiceInstaller 的完整 System.Configuration.Install.Installer。是的,它是 .NET,已编辑,感谢您的澄清推送! 引用是一篇很好的文章,但没有涉及到问题(升级上下文中只有安装,卸载没有发生)。虽然一个简单的技巧是说“如果调用安装步骤并且它是升级,请卸载服务”,但我想要一个适当的官方祝福答案! 这会是“官方”答案吗? msdn.microsoft.com/en-us/library/aa367570(VS.85).aspx。顺便说一句,如果遇到此类问题,创建 MSI 日志可能会有所帮助:msiexec /i MyService.msi /l*vx log.txt 不确定你的答案是什么 - 请记住卸载后安装工作 - 只是升级失败。 2k5 曾经卸载然后重新安装,2k8 通过替换一些文件并让您“从中挑选”来整理混乱,从而使事情变得混乱。 重新记录,意识到记录的可能性,但从 MS 的角度来看,它确实是一个 WAD - 只是它不起作用 OOTB,因此需要为此“发布”解决方法【参考方案2】:

这应该回答你的问题

How do I eliminate "The specified service already exists" when I install new versions of my software?

【讨论】:

***.com/questions/617409/… 回答得更加简洁。现在,如果这个问题的重复消失了! 嗨鲁本 - 我不认为你提到的链接是一个重复 - 有几种方法可以解决这里提到的问题,其中一种是更改动作序列的脚本。那篇文章没有解释问题的背景,只是解决问题的一种方法。

以上是关于Visual Studio 2005 -> 2008/10 服务安装程序项目升级问题的主要内容,如果未能解决你的问题,请参考以下文章

急需!!!visual studio.net 2005怎么 设置环境变量?

第一次安装过visual studio2005删了,再第二次安装就安装不起来了!为啥?

如何在 Visual Studio 2008 中打开使用 Visual Studio 2005 创建的 rdl?

Visual Studio 2012 与 Visual Studio 2005 中的小程序慢得多

关于visual studio 2005的中文版下载(最新详细下载点)

visual studio 2005中win form 中控件背景颜色透明问题