一键式应用程序从Windows窗体移动到WPF

我有一个Windows Forms应用程序,我最近在WPF中重写了,我需要将它发布给我的最终用户。 我希望能够让用户转到WPF应用程序的ClickOnce安装点并删除他们的Windows窗体应用程序,因此他们的计算机上没有这两个应用程序。

完成此任务的最佳方式(阅读:最简单的用户)是什么?

我曾考虑创建一个先决条件命令行来检测旧版本和卸载,但我想避免编写类似于只运行一次的内容。

我认为你实际上应该能够将WPF版本部署为Windows Forms应用程序的新版本。

每个应用程序的目标是什么版本的.NET Framework?

两个项目上的程序集名称是否相同,安装URL是否相同? (对于ClickOnce,它与projectGUID无关。)

我没有尝试过,但是你可以让你的WPF应用程序直接替换你的WinForms应用程序吗? 如果您发布到同一文件夹,将正确的GUID从旧项目复制到新项目,它可能只是无缝安装。

这不会删除旧版本,但ClickOnce应用程序的每次更新都会保留旧版本。

或者,您可以将现有的WinForms项目转换为WPF项目吗? 它只是一组不同的assembly参考吗? 我从来没有写过WPF应用程序,请原谅我,如果这显然是错误的。

为什么不简单地为新的WPF应用程序提供相同的等以及更高的主要版本号?

ClickOnce甚至不会意识到您从WinForms切换到WPF技术。

正常的ClickOnce版本更新function将在下次更新应用程序时自动将旧代码替换为新代码(如果需要,可以将其设置为自动发生)。