水晶报表和.NET 4 - 无法加载文件或程序集 (使用 useLegacyV2RuntimeActivationPolicy="false" 的 crdb_adoplus.dll)

3

一些背景信息 - 我的应用程序目前是在.NET 3.5中构建,但我想将其迁移到.NET 4.0。当我将所有项目更改为指向.NET 4.0时,我的应用程序可以正常运行,直到我尝试打开Crystal Report。

我的错误如下:

Could not load file or assembly 'file:///C:\Program Files (x86)\SAP BusinessObjects\Crystal Reports for .NET Framework 4.0\Common\SAP BusinessObjects Enterprise XI 4.0\win32_x86\dotnet1\crdb_adoplus.dll' or one of its dependencies. The system cannot find the file specified.

我已经搜索了一下,有很多答案是在app.config中添加以下变量的形式来解决这个问题:

  <startup useLegacyV2RuntimeActivationPolicy="true">
  <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/>
  </startup>

然而,这个解决方案对我不起作用。我在我的项目中使用另一个程序集(更具体地说是Intuit的ProFile),一旦我设置了useLegacyV2RuntimeActivationPolicy="true",它就无法工作。我认为这是因为他们的某些税务引擎是v4之前的程序集。
那么我的问题是,我该怎么办?将我的应用程序保留在.NET 3.5中只是一个临时的解决方法。
我能否在运行时切换useLegacyV2RuntimeActivationPolicy(即在加载Crystal报告之前将其设置为true),或者这是一个hack /甚至可能吗?
有更好的方法吗?
任何见解都将不胜感激。
谢谢,

可能是Could not load file or assembly crdb_adoplus.dll的重复问题。 - abstrask
如果您查看我的问题中的app.config代码,您会发现它与您说我的问题“可能是重复”的问题的被接受答案完全相同,但该答案对我无效。我还声明我阅读了很多类似的问题,但都没有解决我的问题,这就是我发布帖子的原因。我的问题不是重复的,请下次仔细阅读问题。谢谢。 - crunchy
你正在使用哪个版本的Visual Studio?(只是检查旧版本是否附带了Crystal而新版本没有)我在一个在VS2008中创建并目前正在使用VS 2013进行维护的项目上遇到了类似的问题。 - Dan Sorensen
我正在使用VS 2012和2013(实际上我也尝试过在VS 2010中,但无济于事)。我不能确定这个项目是在哪个版本的VS中创建的,但我会假设它是在VS 2008中创建的。 - crunchy
2个回答

1
在您的运行时安装/部署中有某些不同步的问题。它不应该寻找“dotnet1”文件夹。尝试删除所有Crystal程序集。将项目设置为.NET 4。安装VS 2010 Crystal插件,然后安装运行时引擎的任何SP。

一旦我有空闲时间,我一定会尝试这个。非常感谢您的建议,希望不久的将来我能将其标记为答案 :) - crunchy

-2
C:\Program Files (x86)\SAP BusinessObjects\Crystal Reports for .NET Framework 4.0\Common\SAP BusinessObjects Enterprise XI 4.0\win32_x86\dotnet1\crdb_adoplus.dll

路径上传错误,然后继续。这样就可以运行了。


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