【问题标题】:ClickOnce deployment with Crystal Reports prerequisite使用 Crystal Reports 先决条件进行 ClickOnce 部署
【发布时间】:2010-11-06 06:49:10
【问题描述】:

我有一个使用 ClickOnce 部署的 .NET Winforms 应用程序(在 VS2005 中创建)。在其中一个表单上,我有一个 Crystal Reports 查看器控件供用户查看报表,但为了在应用程序中使用它,我必须包含他们在安装应用程序之前安装的 Crystal Reports XI Release 2 prereq。这基本上是在用户机器上安装了一个简化版的 Crystal。

它可以通过这种方式发布,但用户必须等待 Crystal 安装有点麻烦,而且对我来说也是一个巨大的麻烦,因为发布带有 prereq 的应用程序需要很长时间才能完成,因为它有将大型先决条件上传到服务器。

由于发布需要很长时间并且新安装不是很常见,所以我通常在发布更改时不包括先决条件,而仅在需要新安装时才与先决条件一起发布。

如果您使用 ClickOnce 通过 Crystal Reports 发布应用程序,这是您发布它的方式还是有更简单/更好的方法。

有没有一种方法可以包含/GAC 所需的 CR dll,而不是包含和安装 Crystal Report prereq,或者有一种方法可以配置 OneClick 部署以不必每次都复制文件。如果我可以配置 ClickOnce 部署,这样我就不必包含先决条件,而只需将安装指向一个有帮助的标准位置。

希望这有点清楚,有人可以提供帮助。谢谢

【问题讨论】:

  • 我也遇到过这个问题,但除了在安装说明中包含一个指向 CR Redist msi 的链接外,我没有找到好的解决方案。

标签: deployment crystal-reports clickonce


【解决方案1】:

从回复来看,这似乎很常见,所以我现在只发布我为解决这个问题所做的工作。

首先,我认为 Bronumski 的反应应该有效,但我过去尝试时并没有成功。

我解决这个问题的方法是使用 ClickOnce 将文件发布到本地文件夹,然后手动 ftp 文件,不包括创建的 Crystalreport 安装目录。

我知道这不是一个好的答案,但我不必再经常部署,所以这是我现在解决这个问题的方法。请通读所有其他答案,以找到可能有助于解决您的问题的答案。

希望对您有所帮助。谢谢

【讨论】:

    【解决方案2】:

    当您部署具有先决条件的 ClickOnce 应用程序时,您可以指定先决条件的下载位置、本地或供应商(例如 Microsoft)。如果您指定供应商,它将不会在您的部署包中包含必备的二进制文件。

    如果 Crystal 没有指定远程位置,那么您始终可以使用 Bootstrapper Manifest Generator 完成您自己的先决条件。然后,您将 Crystal 二进制文件上传到部署服务器上的某个位置,使用新的二进制存储库作为供应商站点创建自定义先决条件,在 clickonce 应用程序中添加自定义先决条件,并将其设置为从供应商站点下载。

    我相信,在 VS 2010 中,您可以为 ClickOnce 先决条件提供第三种选择,您可以在其中定位特定站点,从而无需自定义先决条件。

    【讨论】:

    • 不知何故直到现在我才错过了这个答案。也许我做错了什么,但我过去曾尝试指定供应商站点和特定位置,但无济于事。我同意这应该可行,但我没有成功。我在特定位置框中输入了 Crystal Report 安装在服务器上的位置,但它对我不起作用。我会赞成它,因为我认为它也应该起作用,但我会回答我为解决这个问题所做的工作。谢谢
    【解决方案3】:

    很抱歉,我不得不承认我遇到了类似的问题,并最终想出了类似的任意解决方案。

    我最终坐在两个凳子之间,如果用户不想在他们的机器上使用 Crystal,我提供了一个选项来访问托管在具有 Crystal 的服务器上的 Web 服务,因此可以远程完成这项工作。如果他们有水晶,这项工作就在当地完成。

    它并不完美,但至少它是相当被动的。

    【讨论】:

      【解决方案4】:

      当我遇到这个问题时,我为 Crystal Reports 创建了一个单独的安装程序,这对我来说很有意义,因为我有很多程序都在使用它。

      这缩短了部署后的点击时间,但没有先决条件的系统会因异常而崩溃,因此当我将所有内容迁移到 Visual Studio 2008 和更新的 Crystal Reports 时,我开始包含它们。

      每次安装和更新都需要更长的时间,但在我的情况下,管理先决条件而不是易于部署是不值得的。

      【讨论】:

        【解决方案5】:

        .Net 的 Crystal 11.5 合并模块存在漏洞,这会在通过 ClickOnce 部署时引入问题。

        我们最终放弃了 ClickOnce,转而使用自解压器设置 (Nullsoft Install System),并在客户端 PC 上一次性安装了 Crystal Redist。

        Crystal 是一场噩梦,你永远无法“做对”,但你可以减轻头痛。

        【讨论】:

          【解决方案6】:

          从概念上讲,您的做法与我之前所做的一样。我做的不同的一件事是从构建服务器而不是我的机器部署它。坦率地说,只要不中断我的机器,我并不关心部署需要多长时间。

          我使用 CruiseControl.Net 进行构建,所以当需要部署发布构建时,我会为其禁用 CC 构建,启动发布过程,并在一段时间后检查它。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2010-12-14
            • 2016-04-21
            • 1970-01-01
            • 1970-01-01
            • 2018-10-20
            • 1970-01-01
            • 2011-10-26
            • 2010-09-28
            相关资源
            最近更新 更多