代码之家  ›  专栏  ›  技术社区  ›  Anax

一旦CD安装程序尝试连接到Internet,请单击

  •  6
  • Anax  · 技术社区  · 15 年前

    我正在尝试部署一个用VS2008 Express构建的应用程序。其想法是将文件上传到Web服务器(通过网站安装),同时为一些没有Internet连接的用户提供离线(CD)安装。

    在“发布选项”中,我将 Installation Folder URL 空白,我取消选中该选项 The application should check for updates (因为我要手动处理更新检查)并且我填写了选项 Update location (if different than publish location) .

    当我尝试测试脱机安装时,无法安装应用程序。我得到一个错误“应用程序下载没有成功。检查您的网络连接…“当按下详细信息按钮时,我看到以下错误:

    • 激活c:\install\myapp.application 导致异常。跟随 检测到故障消息:

    为什么尽管所有文件都存在,安装程序却试图从Internet下载这些文件?

    最后,当我从 Update location 一切正常。每次需要更新应用程序时,是否需要创建两个不同的设置?或者还有其他解决方案?


    编辑 :

    进一步的测试证明离线安装在WindowsXP中正常工作,但在Windows7中不工作。在以后的情况下,安装程序使用相同的安装文件,尝试从Internet下载应用程序,而不是使用本地.deploy文件。

    没有可用的ClickOnce专家?

    2 回复  |  直到 9 年前
        1
  •  5
  •   Jerry Bullard    15 年前

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

    在 Visual Studio,单击CD-ROM或 如何安装DVD-ROM第页,共页 发布向导。

    启用此部署策略 手动, 更改部署清单中的DeploymentProvider标记,使值为空。在Visual Studio中,此属性在项目设计器的“发布”页上作为安装URL公开。 .在mage.exe中,它是开始位置。

    您可以自动执行此操作,因此您不必每次都手动编辑项目设置(甚至可能犯一个小错误,从而阻止您的客户进行更新)。不幸的是,项目的ClickOnce设置似乎不受标准生成配置控制,因此您需要在使用的任何工具中手动编辑项目文件(也是一个msbuild脚本)或单独的生成脚本。

    您需要覆盖的值是installURL。对于CD-ROM安装版本,它应该是空白的。然后,您的构建将需要构建这两个配置。在这个网站上有很多例子,还有一些关于如何做到这一点的说明。

        2
  •  2
  •   Barrie    9 年前

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

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

    我将从我的dev机器(例如 mymachine01 )它与setup.exe捆绑在一起的.application文件将始终包含如下行:

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

    我会把它压缩,然后把它放到另一台机器上测试安装程序,我会得到一个 Application cannot be started. Contact the application vendor. 错误。单击“详细信息”按钮将显示 The remote name could not be resolved 应用程序尝试访问时出错 MyMeCe01 .为了解决这个问题,我使用了以下步骤:

    1. 在vs中的项目上单击鼠标右键,然后选择“属性”
    2. 转到“发布”选项卡
    3. 点击“选项”
    4. 选择“清单”
    5. 选中“排除部署提供程序URL”