首页 文章

Visual Studio 2005 - > 2008/10 Service Installer项目升级问题

提问于
浏览
13

我已经升级了[VS2008内置的[.vdproj MSI生成器项目] 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的基本方案(即签名),是否需要进行其他代码更改以解决此问题

(如果在新安装程序中有一个重要的卸载步骤,那么强大的命名只会在新的安装程序中发挥作用 . )

我在VS 2008中生成了一个新的安装程序,它的表现并不好 .

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

附录感谢divo's探测:尽管可能有效的最简单的黑客就是说"if install step is called & its an upgrade, call the uninstall step for the service first",我想要一个正确的正式祝福答案! (例如,在升级过程中重命名服务时,简单的黑客如何应对?)

2 回答

相关问题