1

我有一个 .NET 3.5 SP1 WinForms 应用程序。我已经使用以下设置为 ClickOnce 部署设置了它:

Visual Studio 2008 中的先决条件和部署设置屏幕截图

  • 发布到位置:\\fileserver\installers\myapp\
  • 先决条件:Windows Installer 3.1、.NET Framework 3.5 SP1
  • 从以下位置下载先决条件:\\fileserver\installers\common\
  • 应用程序可离线使用(安装到添加/删除程序和开始菜单)

我们的用户很可能没有互联网访问权限或已经安装了 3.5。由于它们都将位于公司 Intranet 上,因此我们已将必要的安装程序放在他们都可以访问的网络共享位置。

在缺少 .NET 3.5 的机器上测试安装时,一切正常。它安装了先决条件和应用程序,并且启动没有问题。

问题是每次我部署应用程序(通过发布按钮)时,Visual Studio 2008 都会坚持将所有必备文件/文件夹从我的开发 PC 复制到网络位置(installers\myapp)。这导致我的 20MB 应用程序在文件夹中大约有 200MB。这有效地复制了所有内容,因为 ~200MB prereqs 已经在 installers\common 文件夹中。不过,正如我所说,它安装得很好。如果我删除 VS 放在 myapp 文件夹中的先决条件,它甚至可以正常安装,大概是因为安装程序无论如何都从公共位置获取它们(如先决条件对话框中指定的那样)。

这可能是一个微不足道的问题,因为没有任何问题并且它会正常工作,但它很烦人,原因有两个:

  1. 它会减慢部署速度,因为每次我向应用程序发布一个小的更改时,我都必须通过网络传输 200 多兆
  2. 它在我们的文件服务器上浪费空间

我可以通过每次简单地删除文件夹来解决第二个问题,但这本身就是一个烦人的额外步骤。

4

1 回答 1

0

您可以做的一件事是使用 Bootstrapper Manifest Generator 推出您自己的先决条件。将 URL 设置为要提供部署的位置。然后将VS中的选项设置为“从供应商位置下载”。

它将从您在 BMG 中设置的 URL 下载部署,并且不会在您每次发布 ClickOnce 应用程序时部署先决条件。

于 2010-10-24T09:56:00.297 回答