2009-06-26 67 views
11

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

它以这种方式发布,但用户不得不等待Crystal安装,这对我来说是一个巨大的麻烦,因为使用prereq发布应用程序需要很长时间才能完成,因为它必须将大的prereq上传到服务器。

由于发布需要很长时间和新安装不超常见我一般不包括前提条件,当我发布变更,而是只有当一个新的安装需要与前提条件发布。

如果你使用ClickOnce发布使用Crystal Reports的应用程序,这是你如何发布,或是否有更简单/更好的办法。

有没有一种方法可以包含/ GAC需要的CR dll,而不是包含和安装Crystal Report prereq,或者有没有一种方法可以将OneClick配置配置为无需每次都复制文件。如果我可以配置ClickOnce部署,以便不必包含prereq,只需将安装指向标准位置即可。

希望这有点清楚,有人可以帮忙。谢谢

+0

我也有这个问题,但我没有找到一个好的解决方案,除了在安装说明中包含一个链接到CR Redist msi。 – 2009-06-26 21:22:49

回答

3

从回复看来,这似乎很常见,所以我现在只是发布我所做的事情来解决问题。

首先,我会开始说我认为布隆姆斯基的回应应该有效,但是我过去在尝试时还没有取得成功。

我解决这个问题的方法就是使用ClickOnce将文件发布到本地文件夹,然后手动将文件ftp排除在创建的crystalreport安装目录之外。

我知道这不是一个很好的答案,但我不必经常部署,所以这是我现在要解决的问题。请仔细阅读所有其他答案,找出可能有助于解决问题的答案。

希望它有帮助。谢谢

0

从概念上讲,你做的事情和我以前一样。我做的不同之处是从构建服务器而不是我的机器部署它。坦率地说,我不在乎多久才部署,只要它不中断我的机器。

我用CruiseControl.Net的建立,所以当是时候部署的发布版本,我只想禁用CC编译它,启动发布过程,并经过一段时间检查。

0

.Net的Crystal 11.5合并模块是错误的,并且在通过ClickOnce进行部署时引入了问题。

我们最终抛弃了ClickOnce并进行了自动提取器设置(Nullsoft Install System),并在客户端PC上一次性安装了Crystal Redist。

水晶是一场噩梦,你永远无法'正确',但你可以缓解头痛。

0

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

这缩短了点击一次部署,但系统没有prequisite将与异常崩溃,所以当我一切都迁移到Visual Studio 2008和新的水晶报表,我开始,包括他们来代替。

它每次安装和更新的时间需要更长的时间,但对我来说这是不值得的管理与prequisite易于部署的麻烦。

0

对不起,我不得不承认我有类似的问题,并最终提出了类似的任意解决方案。

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

这并不完美,但至少它是合理的反应。

6

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

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

我相信在VS 2010中,您有第三个选择ClickOnce的先决条件,您可以在其中定位特定站点,从而不需要您的自定义先决条件。

+0

不知何故,我错过了这个答案,直到现在。也许我做了一些不正确的事情,但我试图指定供应商网站,并从过去的特定位置无济于事。我同意这应该起作用,但我没有取得任何成功。我在特定位置框中输入了将Crystal Report安装到服务器上的位置,但它对我无效。我会加倍努力,因为我认为它也应该起作用,但我会为我解决问题创建一个答案。谢谢 – Dusty 2009-12-15 17:47:12