首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >ClickOnce部署问题

ClickOnce部署问题
EN

Stack Overflow用户
提问于 2009-06-22 09:42:46
回答 3查看 7.4K关注 0票数 17

我正在处理一个使用ClickOnce部署的项目,并且我正在处理几个问题。

在我的软件解决方案中有两个组件:一个是桌面客户端,它需要运行.NET Framework3.5;另一个是服务器(ASP.NET应用程序),它列出了可用的文档,并提供了一种使用ClickOnce安装桌面客户端的方法。

我的第一个问题是必备条件:在安装客户端之前,我需要一种安装3.5框架的方法。Visual studio创建了一个setup.exe来处理这个问题,但是为了使它工作,它必须直接运行(而不是链接到.application文件),并且在创建ClickOnce清单时必须知道部署URL

因此,我还有两个问题:在使用setup.exe安装客户机应用程序之后,显然无法运行带有查询字符串参数的客户机应用程序,因此,我只能有一个到setup.exe的链接,而不是让服务器显示链接到诸如".../client.application?document=doc1“的URL的文档列表。

另一个问题是最糟糕的:该服务器旨在用于相对较小的专用网络,而不是在单个web服务器上。问题是:在构建时,我不知道ClickOnce客户端的部署URL,因此在选中“从网站安装”选项时,setup.exe无法正常运行。现在,解决方法是有一个脱机安装程序,它在一个大的ZIP文件中包含setup.exe、先决条件和ClickOnce部署文件。

具有适当框架版本的用户仍然可以使用带有查询字符串的文档的.application链接来安装/更新客户端并打开文档。没有框架的用户会收到一条错误消息("System update required blablabla 3.5.0.0 blabla GAC"),并且必须下载ZIP文件,将其解压缩到他的本地计算机并运行setup.exe文件来安装框架,然后运行客户端。在此之后,他必须返回到文档列表,并使用该链接使用适当的参数启动客户端。

不用说,我对这种策略并不是很自豪,因为它破坏了所有ClickOnce部署的优势。

有没有可能以一种更优雅的方式摆脱先决条件问题?在网络中部署服务器时,有没有一种简单的方法可以修改ClickOnce应用程序的安装地址(就像在配置文件中写入地址一样)?

EN

回答 3

Stack Overflow用户

发布于 2009-06-22 22:10:51

为了在我们的持续构建系统中构建ClickOnce应用程序并部署到多个测试服务器,我花了一些时间使用Mage和文章。

我不确定这是否能解决您的第二个问题,但如果您部署到多个服务器上,它至少可以减轻构建过程中的一些痛苦。如果您可以分发mage.exe (不确定微软是否允许),则可以在安装过程中现场修改清单。

票数 5
EN

Stack Overflow用户

发布于 2009-06-24 03:09:21

也许可以利用NAnt来自动化部署URL的更改。我使用它来自动化我的ClickOnce构建,并更改清单的构建版本。描述了我是如何做到的。

票数 0
EN

Stack Overflow用户

发布于 2009-06-24 14:55:00

如果用户在一个域上,那么我会让系统管理员使用Group Policies / Windows Update或任何其他用于管理桌面的策略来推送.NET 3.5。

这听起来确实像是一个环境问题。如果组织足够大,可以有一个系统管理员,那么这个人就应该负责为应用程序提供一个运行环境。

如果组织中没有人员担任此角色,那么我相信您又回到了手动解决方案。此外,手动操作并不一定会破坏ClickOnce的所有优势……ClickOnce的优点是,你可以修改客户端,重新发布,客户端机器会自动升级……

我认为另一种选择是编写一个脚本来获取并安装.NET 3.5,然后安装应用程序,我以前还没有这样做过……我相当确定它会起作用..。实际上,您可以通过组策略部署一个启动脚本,该脚本也可以获得.NET 3.5,这将非常简单。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1026315

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档