通过点击一次将VS2003 1.1 windows窗体应用程序更新到VS2010,我们还必须升级应用程序中使用的水晶报告版本。
如果用户有本地管理员,一切都很完美。不幸的是,我们的大多数用户都被严格锁定,无法安装任何东西。这给安装CR13二进制文件带来了问题。在单击一次设置中,我将所有CrystalDecisions。* dll标记为Include / Required,但它们未发布到部署文件夹,因此不会复制到具有其他第三方库的用户计算机。这意味着应用程序启动正常,但只要用户尝试运行报告,就会出现以下错误:
************** 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'
即使它被标记为包含/必需,也不会部署此文件。我真的不想追逐每个用户并手动安装它(我们没有选择进行组策略推送)。我们使用了四个Crystal dll:
其中,只有发动机才真正部署!有谁知道为什么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”下的Crystal安装dotnet“,将它们复制到项目中并通过”浏览“选项卡添加它们,但它们仍然没有被部署:(这几乎就像他们有一个标志设置说不应该部署它们,所以视觉工作室只是忽略他们??
答案 0 :(得分:3)
我管理一个主要的ClickOnce项目,它也使用Crystal Reports引擎生成PDF文档。
我相信您要做的就是技术上违反Crystal Reports服务条款。相反,您必须让用户安装最新版本的可分发Crystal Reports运行时作为先决条件。是的,我知道这是一个巨大的不便,但它是解决这个问题的唯一方法。
您是否尝试使用ClickOnce先决条件安装CR运行时,或者您是否尝试将安装程序与应用程序捆绑在一起?您将需要从SAP站点使用this page上提供的最新ClickOnce安装包。我可能错了,但我认为如果您通过ClickOnce auto-installer for prereqs安装运行时,您的用户可能无需管理员权限即可安装运行时。
根据我的经验,如果您要部署一个需要在用户的应用程序上安装多个先决条件的健壮应用程序,具有管理员权限的人员应该安装您的先决条件。这并不总是一项要求,但它可以在将来节省很多麻烦。