Visual Studio 2010,Crystal Report for Visual Studio 2008和ClickOnce

5
我有一些麻烦。四周前,我将我们的Winforms产品从VS2008升级到了VS2010。转换很顺利,但我们使用了Crystal Reports,所以必须安装VS2010 Crsytal Reports for Visual Studio 2010 Beta 2。这也很好,让我重新获得了针对Crystal的设计工具等。我选择在打开解决方案时不转换报告,因此它们仍然设置为原始版本的Crystal。
然后,我们继续进行了4周的开发,现在我要在Vsiaul Studio 2010下进行我的第一个ClickOnce部署,但遇到了严重问题。ClickOnce应用程序文件被设置为具有与CrystalReports相关的模块作为先决条件。我仍然希望最终用户使用Crystal Reports for VS2008而不是运行时版本2010,后者非常庞大且仍在测试中。
当我发布时,清单会显示对Crystal的依赖项在版本14.0.2000.0(VS2010版的Crystal Report)上,但项目中所有DLL引用都设置为使用特定版本并指向10.5.3700.0(VS2008版的Crystal Report)。这意味着尝试从ClickOnce安装时,会提示安装失败:
“无法安装或运行应用程序,该应用程序需要首先安装程序集CrystalDecisions.CrystalReports.Engine Version 14.0.2000.0在全局程序集缓存(GAC)中。”
我无法弄清楚为什么清单希望使用那个版本号,而所有引用都指向另一个版本。如果我将beta版的VS2010 crystal运行时捆绑到ClickOnce部署中,那么客户端将收到相反的错误消息,即需要10.5.3700.0。如果我在客户端上安装10.5.3700.0,他们就可以得到一个正常工作的系统,但是我必须手动安装10.5.3700.0版本,并且在此之前,他们必须首先经历一个漫长的2010运行时(14.0.2000.0)安装过程,而这个版本甚至没有被使用。
基本上,我正在尝试让清单显示10.5.3700.0或找出为什么VS2010要在那里放入新版本号。
请帮忙,谢谢。
2个回答

1

我把解决方案转换回VS2008,回退相对顺利。由于Crystal处于beta版,运行时曾经非常大,而我在ClickOnce部署上浪费了大量时间。回滚解决了这三个问题。

我不高兴回退,但2010年使用Crystal Reports的现实情况相当糟糕。我将监控SAP的进展,因为我知道他们正计划在本季度减少运行时间并退出beta版。


0

你的电脑上是否安装了新的CR组件?如果是,它可能会引用GAC中的程序集。

你可以尝试将需要的程序集复制到项目中,并设置引用指向本地副本,然后在引用中将“复制到本地”设置为true。这将确保它引用的是本地副本而不是GAC中的副本。

如果这样做不起作用,我建议将Crystal Reports之前版本的先决条件从VS2008文件夹复制到VS2010文件夹中。你可以在以下位置找到这些包:

C:\Program Files (x86)\Microsoft SDKs\Windows\v6.0A\Bootstrapper\Packages (64位机器)
C:\Program Files\Microsoft SDKs\Windows\v6.0A\Bootstrapper\Packages

然后关闭并重新打开Visual Studio,旧的先决条件应该会出现在VS中,并允许你选择它。


1
嘿,我尝试将VS2008的Crystal文件放入VS2010的文件夹中,它找到了它们,这意味着我可以将Crystal Reports 2008设置为先决条件,但这并不能阻止它在ClickOnce清单中选择错误的Crystal版本号。不幸的是,我在这方面没有取得任何进展。 - Alan Macdonald
删除与CR相关的引用并重新创建它们,确保选择先前版本中的引用。如果可以的话,建议卸载VS2010中的引用并在您的计算机上安装来自VS2008的引用,以确保正确选择版本。 - RobinDotNet

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接