【问题标题】:Bundling only part of the prerequisites with ClickOnce使用 ClickOnce 仅捆绑部分先决条件
【发布时间】:2010-08-18 10:07:40
【问题描述】:

是否可以配置 ClickOnce 安装,使其需要 .Net Framework 和 VSTO,但仅包含 VSTO 二进制文件并在必要时下载 .Net Framework?

在包中包含 VSTO 并不是什么大问题,但如果可能的话,我会放弃 350MB 的 .Net 框架。 (Dynamics CRM SDK 依赖于一些非客户端配置文件功能,所以我需要完整的功能。)

在大多数情况下,用户都安装了 .Net Framework,因此在这些情况下,可以离开 .Net Framework。如果用户计算机上缺少框架,是否仍然可以使已发布的设置下载框架。

“从组件供应商的网站下载先决条件”似乎放弃了本地 VSTO 包,而“从与我的应用程序相同的位置下载先决条件”需要部署包中的 .Net Framework。

【问题讨论】:

  • “从组件供应商的网站下载先决条件”选项实际上有什么问题?
  • 这就是我的想法,我会认为在这种情况下 ClickOnce 会在从外部源下载之前确定是否需要安装 prereq。
  • 化妆品。营销/管理部门希望安装人员尽可能独立,以便给客户留下更好的印象。他们不希望它看起来像“下载随机文件”。此外,在 LAN 网络中部署二进制文件通常比让所有客户端计算机从 Microsoft 的下载服务器单独下载它们要快。

标签: .net deployment clickonce vsto redistributable


【解决方案1】:

您需要 VSTO 运行时,没有办法,它不能在本地部署。至于 PIA,您也需要这些,除非您的目标是 .NET 4。如果您使用 .NET 4,它将自动嵌入您需要的 hte PIA 位。

对于 .NET,它不会下载 350MB 的包,如果您选择“从供应商网站安装”,它会增量安装它需要的部分。

顺便说一句,我们在客户中跟踪这一点,在 Microsoft 开始将 .NET 3.5 作为关键的 Windows 更新推出之后,安装它的客户的百分比上升了 90%。所以在大多数情况下,人们已经安装了它。

【讨论】:

  • 我知道这一点,.Net 3.5 上的统计数据使得区分这两者变得更加重要。我们希望有一个在大多数情况下不会下载任何内容的独立安装程序(即,将 VSTO 运行时设置为“从与我的应用程序相同的位置下载先决条件”),但这也最终包括完整的 .Net 安装程序和正如你所说,仅仅因为 10% 的客户可能缺少它,就为 90% 的客户运送这个是没有意义的。如果尝试在未安装 .Net 的情况下安装 VSTO,则删除 .Net 必备项会导致非常难看的错误。
  • 好吧,关于丑陋的错误,你是对的。我希望他们让你设置那个标志,关于在哪里获得每个 prereq 不同的 prereq,但他们没有。如果您在 CD 上提供了部署,那么包含整个 .NET Framework(只是一个想法)并不重要。可能有一种方法可以检测从浏览器安装的 .NET 版本,但我不确定这会给你带来什么。
  • 您可以编写一个存根(显示或不显示 win 表单的控制台或 winform)并使用 .NET 3.5 作为供应商的先决条件进行部署。存根可以安装其他先决条件,然后启动 VSTO 安装。这样,如果他们有 3.5,它将跳过该步骤。如果他们不这样做,它将从 MSFT 安装它,然后继续。坦率地说,简化用户只会看到一次的安装似乎很麻烦,但这是您的选择。
【解决方案2】:

也许不完全是您想要的,但如果您使用 .NET 4.0,那么您可以使用 NoPIA 功能并消除对办公室二进制文件的需求。

【讨论】:

  • 难道我还不需要 VSTO 吗?实际上我需要承认我并不完全确定 VSTO 在 Office COM 层之上添加了什么。
  • 我也不知道 - 我一直认为 VSTO 包含打包在一起的所有 PIA。但是您可以通过检查应用程序中的程序集引用来验证这一点。
  • 看来 VSTO 确实有不同的程序集 - 请参阅 blogs.msdn.com/b/andreww/archive/2008/04/02/…
  • 但有人谈到使用 NoPIA 功能更容易进行插件开发。例如 - 请参阅 add-in-express.com/creating-addins-blog/2010/05/28/… 我建议试一试并在干净的客户端机器上检查它。
猜你喜欢
  • 2010-12-14
  • 2010-11-06
  • 2016-04-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多