我正在开发一个使用 ClickOnce 部署的项目,并且遇到了几个问题。
我的软件解决方案中有两个组件:一个需要.NET Framework 3.5 才能运行的桌面客户端,以及一个列出可用文档并提供使用 ClickOnce 安装桌面客户端的方法的服务器( ASP.NET应用程序)。
我的第一个问题是先决条件问题:我需要一种在客户端安装之前安装 3.5 框架的方法。Visual Studio 会创建一个setup.exe
来处理这个问题,但为了使其工作,它必须直接运行(而不是链接到文件),并且在创建 ClickOnce 清单时必须知道.application
部署URL 。
所以我还有两个问题:显然没有办法在使用setup.exe
. document=doc1" 我只能有一个指向setup.exe
.
另一个问题是最糟糕的:该服务器旨在用于相对较小的专用网络,而不是在单个 Web 服务器上。问题是:我在构建时不知道 ClickOnce 客户端的部署 URL,因此在setup.exe
选中“从网站安装”选项时无法正常运行。目前,解决方法是使用一个离线安装程序,该安装setup.exe
程序在一个大的 ZIP 文件中包含先决条件和 ClickOnce 部署文件。
具有正确框架版本的用户仍然可以使用.application
带有查询字符串的链接到文档来安装/更新客户端并打开文档。没有框架的用户会收到一条错误消息(“系统更新需要 blablabla 3.5.0.0 blabla GAC”),并且必须下载 ZIP 文件,将其解压缩到他的本地计算机并运行该setup.exe
文件以安装框架,然后是客户端. 之后,他必须返回文档列表并使用链接启动带有适当参数的客户端。
不用说,我对这种破坏所有 ClickOnce 部署优势的策略并不感到自豪。
是否有可能以更优雅的方式摆脱先决条件问题?在网络中部署服务器时,有没有一种简单的方法可以修改 ClickOnce 应用程序的安装 URL(例如在配置文件中写入 URL 或其他内容)?