C# .net(winforms,而非asp)多服务器部署

C# .net(winforms,而非asp)多服务器部署,c#,deployment,clickonce,auto-update,C#,Deployment,Clickonce,Auto Update,我有一个小型的.NET WinForms应用程序和两个linux服务器,DEV和CL1、CL2..CLN(DEV是开发服务器,CL*是属于我们客户的服务器,它们位于专用网络中,是一种生产服务器) 我需要一个更新机制,以便 (1) 我开发了一个新版本并将其发布到开发人员 (2) DEV服务器的用户从DEV安装最新版本 (3) CL2的用户(client2的员工)直接从CL-2安装稳定版本 (4) 应用程序使用安装它的服务器检查更新(因此,如果它是从CL-2安装的,它应该检查CL-2的更新) (5)

我有一个小型的.NET WinForms应用程序和两个linux服务器,DEV和CL1、CL2..CLN(DEV是开发服务器,CL*是属于我们客户的服务器,它们位于专用网络中,是一种生产服务器)

我需要一个更新机制,以便
(1) 我开发了一个新版本并将其发布到开发人员
(2) DEV服务器的用户从DEV安装最新版本
(3) CL2的用户(client2的员工)直接从CL-2安装稳定版本
(4) 应用程序使用安装它的服务器检查更新(因此,如果它是从CL-2安装的,它应该检查CL-2的更新)
(5) 如果我需要,我应该能够将更新发布到所选的CL服务器(仅使用文件副本&可能是sed;而不是重新发布),如果我不需要,CL服务器将有一个旧版本,直到我手动更新它为止)

我尝试使用clickonce,但看起来它只满足前两个要求


我该怎么办?

老实说,ClickOnce应该处理1-4。所有需要做的是,对于您想要从中部署/更新的每个站点,您需要它有自己的发布,在查看了您的规范之后,这并不是不正确的

然后你可以做什么来获得5。适用的是创建一个自动过程来重新发布文件。这可以执行发布,然后上载到正确的服务器


请记住,ClickOnce每个版本都需要一个新的清单,而新版本需要发布,所以我不确定您是否能获得5个左右的清单。只需简单的文件替换。

凯尔是对的。但是对于第五个注意事项,您只需要复制部署,然后使用mage修改安装URL并将其指向新服务器,然后重新签署清单

我支持将应用程序部署到DEV、QA、PROD服务器上。我处理这件事的方式是 我创建了一个cmd文件,其中包含对MSBUILD的命令行调用。它使用适当的URL和开关为每个服务器构建一次应用程序。我为我的开发人员和QA构建了一个不同的AssemblyName,这样我就可以同时运行所有3个环境。这样,我的构建过程是自动化的,我根本不需要发布

这里有一篇文章介绍了可以使用的参数。

@凯尔,
对于上述解决方案,不同的版本可以并排运行,或者您是否会收到指示应用程序已安装的错误

你不需要重新发布来增加版本吗?你可以用MageUI修改版本并重新签署两个清单,将整个shebang复制到Web服务器,瞧,你有了一个新版本。很好!谢谢你的信息,非常有趣。