我有一个Winforms项目,其中只有一个.exe文件作为主要输出。我使用一个部署项目来分发它,但是在安装新版本时,.exe文件没有被更新,这意味着我必须要求用户手动卸载,然后安装新版本。
我正在做的事情是:
< code >F29
我肯定我以前做过这件事,但我现在似乎做不到。我做错了什么?
编辑:我通过更改项目属性中的文件版本(如this answer中的文件版本)使其工作。
发布于 2009-04-30 11:54:20
很难说是什么导致了这一切。如何安装不删除以前版本的MSI?我建议运行不使用详细日志记录的安装。我会像这样从命令行运行它:
msiexec /i "project.msi" /l*v "c:\install.log"/l告诉msiexec (这是安装程序服务)创建日志,*告诉它记录所有内容,v告诉它使用详细模式。
运行它,并查看日志文件,它将告诉您哪些失败以及原因。你也可以把日志文件发到这里,我打赌我们可以一起找到一些东西。
ADDITIONL问题:日志文件使看起来像是安装程序认为没有什么可做的。当您声明更新文件版本时,您正在更新什么?如何部署包含的文件?是否将它们作为“主要输出”包含在安装项目中,还是直接包括程序集?您是否确定了依赖项并自动包含它们,还是包含了项目输出?
有关需要更改哪些内容以自动升级MSI的.,请参阅本文
发布于 2009-12-03 19:26:24
在我的头撞了几个小时后终于弄明白了。
我的问题和这个问题是一样的,结果很容易解决。上面的两个答案使我走上了正确的方向,帮助我解决了我的问题,但这里简单地说了一句。
如果将RemovePreviousVersion设置为true,则在程序集信息按钮下的应用程序设置中最有可能出现问题。
我运行了mohlsen在上面的答案中显示的日志,msiexec /i "project.msi“/l*v "c:\install.log",最后得到了相同的响应,不会覆盖;不会修补;现有文件具有相同的版本。
逆给我指明了正确的方向,但也使我对MFC引用产生了一些影响。我正在编写一个windows应用程序,最后将两个和两个放在一起,然后转到我在Application选项卡下编写的应用程序的属性。有一个按钮名为程序集信息,它将导致程序集版本和文件版本。我增加了这些,现在是我的.exe文件更新。
因此,您必须做两件事,在您正在编写的应用程序中增加实际的程序集版本,以及安装包的版本。
发布于 2009-10-14 01:32:29
应用程序的可执行文件可能不会更新,因为您没有增加MFC项目中的版本信息资源。
仅仅增加安装项目版本是不够的。见下文:
http://msdn.microsoft.com/en-us/library/6fkzft86.aspx
“安装API也使用版本信息。”
https://stackoverflow.com/questions/806501
复制相似问题