首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >.NET安装包有时不能完全删除以前的版本

.NET安装包有时不能完全删除以前的版本
EN

Stack Overflow用户
提问于 2008-11-14 13:02:49
回答 3查看 2.5K关注 0票数 4

我使用VS2008安装包分发我的应用程序,这通常效果很好。当我创建应用程序的新版本时,我会进入并增加安装包上的Version属性,并验证RemovePreviousVersions属性是否设置为True。

这在大多数情况下都工作得很好--我只需要运行新版本的安装包,旧版本就会被卸载,新版本会替换掉它。

但是,有时安装包会成功运行,但当我启动程序时,旧版本会启动。显然,旧版本的.exe仍然存在。

我最终不得不完全卸载软件并安装新版本,这总是有效的,但这是一件痛苦的事情。

据我所知,该文件并未在使用中,安装包也没有告诉我重新启动。

你知道这是怎么回事吗?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2008-12-19 10:51:11

不是直接的答案,但升级和uninstall+ a重装之间的关键区别在于,任何自定义卸载步骤都不会在2k8中调用,而是在2k5中调用。

这在Visual Studio 2005 -> 2008/10 Service Installer Project Upgrade issue中被引用

与此相关的另一个区别是,在2k8中,文件根据版本信息资源进行升级-如果您的模块没有更新的版本,则它们不会被替换。

在某些情况下,你的强名称是否也有影响,但我很有信心最后一段涵盖了你所看到的问题。

票数 4
EN

Stack Overflow用户

发布于 2010-02-19 16:29:38

第二种方法是使用orca

Orca是用于修改msi文件的实用程序。

你可以从下面的链接下载“Orca”。http://www.softpedia.com/get/Authoring-tools/Setup-creators/Orca.shtml

步骤:

代码语言:javascript
复制
 a. Install orca into your computer.
 b. Open orca
 c. Drag and drop your msi into orca UI
 d. Into left panel it will list the name of tables
 e. select property table
 f. go to right panel and right click
 g. click on 'Add Row'
 h. into 'Property' type REINSTALLMODE
 i. into 'Value' type amus
 j. save msi file
 k. and that's it

现在,当你安装它时,它会覆盖所有的文件。

票数 3
EN

Stack Overflow用户

发布于 2010-02-19 16:20:27

我们需要将msi文件的REINSTALLMODE属性设置为amus。

下面是了解更多'amus‘http://msdn.microsoft.com/en-us/library/aa371182%28VS.85%29.aspx含义的链接

有两种方法可以做到这一点。

使用 SDK附带的msiexec.exe (如果您使用的是VS2005或VS2008,只需浏览到.NET studio的命令提示符,您就可以在那里找到它)

找到msiexec.exe后,只需输入以下命令,将安装程序的REINSTALLMODE属性设置为amus即可。

msiexec.exe /i foo.msi REINSTALLMODE=amus

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/290011

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档