我最近在WPF重写了一个Windows窗体应用程序,我需要将它发布给我的最终用户。我希望能够让用户转到WPF应用程序的ClickOnce安装点并删除他们的Windows窗体应用程序,因此他们的计算机上没有这两个应用程序。
实现这一目标的最佳方式(阅读:最简单的用户)是什么?
我已经考虑过创建一个先决条件命令行来检测旧版本和卸载,但我想避免编写类似于只运行一次的内容。
答案 0 :(得分:2)
我认为您实际上应该能够将WPF版本部署为Windows Forms应用程序的新版本。
每个应用程序的目标是什么版本的.NET Framework?
两个项目的程序集名称是否相同,安装URL是否相同? (对于ClickOnce,它与projectGUID无关。)
答案 1 :(得分:1)
我还没试过,但是你可以让你的WPF应用程序直接替换你的WinForms应用程序吗?如果您发布到同一文件夹,将正确的GUID从旧项目复制到新项目,它可能只是无缝安装。
这不会删除旧版本,但ClickOnce应用程序的每次更新都会保留旧版本。
或者,您可以将现有的WinForms项目转换为WPF项目吗?它只是一组不同的装配参考吗?我从来没有写过WPF应用程序,所以请原谅我,如果这显然是错误的。
答案 2 :(得分:0)
为什么不简单地为新的WPF应用程序提供相同的<ProjectGuid>
,<PublishUrl>
等以及更高的主要版本号?
ClickOnce甚至不会意识到您已从WinForms切换到WPF技术。
正常ClickOnce版本更新功能将在下次更新应用程序时自动将旧代码替换为新代码(如果需要,可以将其设置为自动发生)。