使用 Crystal Reports 13 向访问受限的用户部署单击一次应用程序?

mat*_*tao 5 clickonce visual-studio-2010 crystal-reports crystal-reports-2010

通过单击一次将 VS2003 1.1 windows 窗体应用程序更新到 VS2010,我们还必须升级应用程序中使用的水晶报表的版本。

如果用户有本地管理员,一切都会完美运行。不幸的是,我们的大多数用户都处于极度锁定状态,无法安装任何东西。这给安装 CR13 二进制文件带来了问题。在单击一次设置中,我已将所有 CrystalDecisions.* dll 标记为“包含/必需”,但它们不会发布到部署文件夹,因此不会复制到具有其他第 3 方库的用户计算机。这意味着应用程序启动正常,但一旦用户尝试运行报告,就会收到以下错误:

************** Exception Text **************
System.IO.FileNotFoundException: Could not load file or assembly 'CrystalDecisions.Windows.Forms, Version=13.0.2000.0, Culture=neutral, PublicKeyToken=692fbea5521e1304' or one of its dependencies. The system cannot find the file specified.
File name: 'CrystalDecisions.Windows.Forms, Version=13.0.2000.0, Culture=neutral, PublicKeyToken=692fbea5521e1304'
Run Code Online (Sandbox Code Playgroud)

尽管它被标记为“包含/必需”,但该文件并未被部署。我真的不想追查每个用户并手动安装它(我们没有执行组策略推送的选项)。我们使用四个 Crystal dll:

  • CrystalDecisions.CrystalReports.Engine
  • CrystalDecisions.ReportSource
  • CrystalDecisions.Shared
  • CrystalDecisions.Windows.Forms

其中,只有引擎正在实际部署!有谁知道为什么 click-once 不部署其他的(尤其是 Windows Forms dll)以及我如何说服它?

谢谢!

编辑:尝试删除对 Crystal dll 的现有引用(它指向“C:\Program Files\SAP BusinessObjects\Crystal Reports for .NET Framework 4.0\Common\SAP BusinessObjects Enterprise XI 4.0\win32_x86\dotnet”下的 Crystal 安装,将它们复制到项目中并通过“浏览”选项卡添加它们,但它们仍然没有部署:(这几乎就像它们设置了一个标志来表示它们不应该被部署,所以 Visual Studio 只是忽略它们?

RLH*_*RLH 3

我管理一个主要的 ClickOnce 项目,该项目也使用 Crystal Reports 引擎来生成 PDF 文档。

我相信从技术上讲,您尝试做的事情违反了 Crystal Reports 服务条款。相反,您必须让用户安装最新版本的可分发 Crystal Reports 运行时作为先决条件。是的,我知道这是一个巨大的不便,但这是解决这个问题的唯一方法。

您是否尝试使用 ClickOnce 先决条件安装 CR 运行时,或者尝试将安装程序与您的应用程序捆绑在一起?您将需要使用最新的 ClickOnce 安装包,该安装包可在SAP 站点的本页上找到。我可能是错的,但我认为如果您通过 ClickOnce 自动安装程序安装运行时,则无需管理员权限即可安装它。

根据我的经验,如果您正在部署一个强大的应用程序,需要在用户的应用程序上安装多个先决条件,则具有管理员权限的人应该安装您的先决条件。这并不总是一个要求,但它可以在未来避免很多麻烦。