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

仅使用ClickOnce部署Crystal Report DLL,而不使用Prerequisite.msi

  •  5
  • xster  · 技术社区  · 16 年前

    我相信使用.NET程序部署Crystal Report的常规方法是将其设置为发布设置中的先决条件,然后将.msi与web/network/cd/wtv上的clickOnce文件打包。当用户运行setup.exe时,它将检查Crystal Report是否在客户端计算机上。如果没有,它会运行crystal report.msi。但这始终需要管理权限。

    我的问题是,是否可以将Crystal Report的DLL与其他应用程序的输出程序集打包,以便不需要显式安装?我的应用程序使用了许多组件,并且在安装时包含一个DLL就足够了。我可以对Crystal Report做同样的操作吗?

    4 回复  |  直到 16 年前
        1
  •  2
  •   Cub    16 年前

    如果您已经做好了自己动手的准备,那么您可以监视Crystal Reports运行时的安装,以查看它创建/修改的文件/注册表项/设置。或者,您可以从Crystal Reports中反编译msi或下载并反编译mst转换文件。一旦你知道它在做什么,就自己写点东西来做。

        2
  •  4
  •   Cub    16 年前

    我不想成为坏消息的传达者,但是Crystal Reports for Visual Studio.NET并不是为Click Once部署而设计的。Crystal Reports是本机应用程序,用于处理报表的程序集依赖于许多非.NET库。

    许多需要注册的COM对象,支持必须安装的DLL…必须放在某个地方的许可信息(Crystal Reports一直是许可方面的大人物)。

    理论上,如果您的应用程序运行完全信任,您可以监视.NET运行时Crystal Reports的安装,并在C中复制它,但这是一项大量的工作,而且最多是不可靠的。

    遗憾的是,最后的答案是你不能。

    您可以查看活动报表,或者其他一些纯.NET报表解决方案。

        3
  •  0
  •   j.a.estevan    16 年前

    我几乎可以肯定,在购买Crystal Reports的最终版本时,它附带了一个可再发行的库包(不确定此包是否附带了Visual Studio版本)。

        4
  •  0
  •   Brett Veenstra    16 年前

    我将提供一个单独的链接到安装站点上的Crystal Redistributable,并在ClickOnce应用程序中构建一个检查Crystal文件是否存在的链接。

    推荐文章