我有一个小的.NET WinForms应用程序,还有几个linux服务器,DEV和CL1,CL2..CLN (DEV是开发服务器,CL*是属于我们客户的服务器,它们在专用网络中,是一种生产服务器)
我想要一个更新机制,以便
(1)我开发了一个新版本并将其发布到DEV
(2) DEV-server用户从DEV安装最新版本
(3) CL2用户(client2员工)直接从CL-2安装稳定版
(4)应用程序使用安装它的服务器检查更新(因此,如果它是从CL-2安装的,它应该检查CL-2的更新)
(5)如果我想要的话,我应该能够将更新传播到一个选定的CL-server (只使用文件拷贝&可能是sed;而不是重新发布)(如果我不这样做,该CL-server将有一个旧版本,直到我手动更新它)
我尝试使用clickonce,但看起来它只满足前两个要求。
我该怎么办?
发布于 2010-05-26 05:05:24
老实说,ClickOnce应该能处理1-4个。所有需要做的就是,对于你想要部署/更新的每个站点,你需要它有自己的发布,在看了你的规范之后,这样做并不是不正确的。
然后,为了使5.可用,您可以创建一个自动过程来重新发布该文件。这可以执行发布,然后上载到正确的服务器。
请记住,ClickOnce每个版本都需要一个新的清单,而新版本需要发布,所以我不确定您是否可以通过简单的文件替换获得5.左右的版本。
发布于 2010-05-26 16:48:02
凯尔是对的。但是对于第五个注释,您只需要复制部署,然后使用mage修改安装URL并将其指向新服务器,然后重新签名清单。
发布于 2010-05-28 21:01:23
我支持一个我们部署到DEV,QA,PROD服务器的应用程序。我处理这个问题的方式是创建了一个cmd文件,该文件具有对MSBUILD的命令行调用。它使用适当的URL和开关为每个服务器构建一次应用程序。我给我的DEV和QA构建了一个不同的AssemblyName,这样我就可以同时运行所有三个环境。通过这种方式,我的构建过程是自动化的,我根本不需要发布。
这里有一篇文章描述了你可以使用的参数。http://msdn2.microsoft.com/en-us/library/ms165431(VS.80).aspx
@Kyle,对于上面的解决方案,不同的版本是否可以并行运行,或者您是否收到指示应用程序已安装的错误。
https://stackoverflow.com/questions/2908412
复制相似问题