部署项目不更新.exe我有一个Winforms项目,其中包含一个.exe文件作为主要输出。我正在使用部署项目来分发它,但是在安装新版本时.exe文件没有更新,这意味着我必须要求用户手动卸载然后安装新版本。这就是我正在做的事情:我确信我之前已经成功地做到了这一点,但我现在似乎做不到。我究竟做错了什么?编辑:我通过更改项目属性中的文件版本来让它工作,就像在这个答案中很难说出是什么原因造成的。如何在不删除以前版本的情况下安装MSI?我建议在没有详细日志记录的情况下运行安装。我会像这样从命令行运行它:msiexec/i"project.msi"/l*v"c:install.log"/l告诉msiexec(安装程序服务)创建日志,*告诉它记录所有内容,v告诉它使用详细模式。运行它并查看日志文件,它应该会告诉您失败的原因和原因。您也可以在此处发布该日志文件,我打赌我们可以一起找到一些东西。附加问题:日志文件使安装程序认为什么也没做。当您声明更新的文件版本时,您在更新什么?如何部署包含文件?您是将它们作为“主要输出”包含在安装项目中,还是直接包含组件?您是否确定了依赖项并自动包含它们,或者您是否包含了项目输出?更新有关需要更改哪些内容以自动升级MSI的说明,请参阅此帖子。问题511789您的应用程序的可执行文件可能未更新,因为您没有增加MFC项目中的VERSION信息资源。仅增加安装程序项目版本是不够的。见下文:http://msdn.microsoft.com/en-us/library/6fkzft86.aspx“安装API也使用版本信息。”在用头撞墙几个小时后终于弄明白了。我遇到了和这个问题一样的问题,结果很容易解决。上面的两个答案让我朝着正确的方向前进,并帮助我找出了我的问题,但简而言之。如果RemovePreviousVersion设置为true,则问题很可能出在程序集信息按钮下的应用程序设置中。我按照mohlsen在上面的答案中显示的那样运行了日志,msiexec/i"project.msi"/l*v"c:install.log"并以相同的响应结束,不会覆盖;不会打补丁;现有相同版本的文件Inverse为我指明了正确的方向,但也让我对MFC参考有所了解。我正在编写一个Windows应用程序,最后将两个和两个放在一起,然后转到我在应用程序选项卡下编写的应用程序的属性。有一个名为AssemblyInformation的按钮,它指向程序集版本和文件版本。我添加了这些,现在我的.exe文件更新了。所以你必须做两件事,增加你正在编写的应用程序中的实际程序集版本和安装包的版本。另一个提示:如果您打开项目的AssemblyInfo.cs文件,并将AssemblyVersion更改为[assembly:AssemblyVersion("1.0.*")],则程序集版本信息将在您每次构建项目时自动更新。然后注释掉或删除同一文件中的AssemblyFileVersion条目,这样文件版本默认与程序集版本相同。这意味着每次构建文件版本时都会自动更新文件版本,因此您只需更新安装程序版本即可按预期覆盖文件。您是否尝试在应用程序运行时进行更新?如果是这样,那是不可能的。您需要考虑更好的方法,例如使用一个小型外部应用程序来终止当前正在运行的进程,并安装更新,然后使用新版本重新启动。您可以尝试对解决方案进行重建。您也可以在它出现时将其清理干净。如果您更改了所有内容文件,我可以看到这种情况发生。如果没有,则忽略。以上为C#学习教程:部署项目不更新.exe共享的所有内容。如果对你有用,需要进一步了解C#学习教程,希望大家多多关注。本文收集自网络,不代表立场。如涉及侵权请点击右侧联系管理员删除。如需转载请注明出处:
