我正在尝试部署使用VS2008 Express构建的应用程序.我们的想法是将文件上传到网络服务器(通过网站安装),同时为一些没有互联网连接的用户提供离线(CD)安装.
在发布选项中我Installation Folder URL留空了,我取消选中该选项The application should check for updates(因为我正在手动处理更新检查)并且我填写了选项Update location (if different than publish location).
当我尝试测试脱机安装时,无法安装应用程序.我收到错误"应用程序下载没有成功.请检查您的网络连接...",当按下详细信息按钮时,我正在读取以下错误:
- 激活C:\ Install\myapp.application导致异常.检测到以下失败消息:
- 下载http://myserver.com/myapp.application 没有成功.
- 无法连接到远程服务器
- 尝试对无法访问的网络195.42.142.11:80进行套接字操作
为什么,虽然所有文件都存在,但安装是否试图从Internet下载文件?
最后,当我从中删除服务器URL时Update location,一切正常.每次需要更新应用程序时,是否需要创建两个不同的设置?还是有其他解决方案吗?
编辑:
进一步的测试证明,离线安装正常工作在Windows XP中,但它不能在Windows 7中工作,在后一种情况下,使用相同的安装文件,安装程序将尝试从互联网上下载的,而不是使用本地应用程序.部署文件.
没有ClickOnce大师可用吗?
无论文件是否已在本地存在,ClickOnce运行器都将尝试连接到指定的URL.您将需要两个构建配置来支持CD和基于Web的部署.以下是Microsoft文档中的相关信息.
若要在Visual Studio中启用此部署策略,请单击"发布向导"的"如何安装"页面上的"从CD-ROM或DVD-ROM".
要手动启用此部署策略,请更改部署清单中的deploymentProvider标记,以使值为空.在Visual Studio中,此属性在"项目设计器"的"发布"页面上显示为"安装URL".在Mage.exe中,它是Start Location.
您可以自动执行此操作,因此您不需要每次都手动编辑项目设置(并且可能会产生一个小错误,导致客户无法更新).遗憾的是,项目的ClickOnce设置似乎不受标准构建配置的控制,因此您需要手动编辑项目文件(也是MSBuild脚本)或单独的构建脚本,无论您使用何种工具使用.
您需要覆盖的值是InstallUrl.对于CD-ROM安装版本,它应该是空白的.然后,您的构建需要构建两个配置.在这个网站上有很多例子,其他人有关于如何做到这一点的说明.