ClickOnce CD安装程序尝试连接到Internet

时间:2009-11-05 11:18:43

标签: clickonce offline

我正在尝试部署使用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下载文件?

最后,当我从Update location中删除服务器URL时,一切正常。每次需要更新应用程序时,是否需要创建两个不同的设置?还是有另一种解决方案吗?


修改

进一步的测试证明,离线安装在Windows XP中正常运行,但在Windows 7中不起作用。在后一种情况下,使用相同的安装文件,安装程序会尝试从Internet下载应用程序,而不是使用本地.deploy文件。

没有ClickOnce大师?

2 个答案:

答案 0 :(得分:5)

ClickOnce运行器将尝试连接到指定的URL,无论文件是否已在本地存在。您将需要两个构建配置来支持CD和基于Web的部署。以下是Microsoft's documentation的相关信息。

  

启用此部署策略   Visual Studio,单击从CD-ROM或   在如何安装的页面上的DVD-ROM   发布向导。

     

启用此部署策略   手动,更改部署清单中的deploymentProvider标记,以使值为空。在Visual Studio中,此属性在“项目设计器”的“发布”页面上显示为“安装URL”。在Mage.exe中,它是Start Location。

您可以自动执行此操作,因此您不需要每次都手动编辑项目设置(并且可能会产生一个小错误,导致客户无法更新)。遗憾的是,项目的ClickOnce设置似乎不受标准构建配置的控制,因此您需要手动编辑项目文件(也是MSBuild脚本)或单独的构建脚本,无论您使用何种工具使用

您需要覆盖的值是InstallUrl。对于CD-ROM安装版本,它应该是空白的。然后,您的构建需要构建两个配置。本网站上有大量的例子,其他人也有关于如何做到这一点的说明。

答案 1 :(得分:2)

我有一个类似的问题,除了我在VS2015中发布了一个更近期项目的应用程序。我的发布设置是:

  • 用户如何安装应用程序 - "从CD-ROM或DVD-ROM"
  • 应用程序不会检查更新

我会从我的开发计算机(例如mymachine01)发布此文件,并将它捆绑在一起的.application文件与Setup.exe一起包含如下所示的行:

<deploymentProvider codebase="http://mymachine01/Application20Name/Application20Name.application" />

我会将其拉上然后将其放到另一台机器上以测试安装程序,我会收到Application cannot be started. Contact the application vendor.错误。单击详细信息按钮会显示应用尝试访问The remote name could not be resolved的{​​{1}}错误。为了解决这个问题,我使用了以下步骤:

  1. 在VS中右键单击项目并选择属性
  2. 转到发布标签
  3. 点击&#34;选项&#34;
  4. 选择&#34; Manifests&#34;
  5. 检查&#34;排除部署提供商网址&#34;