【发布时间】:2014-01-26 20:01:29
【问题描述】:
一点背景知识 - 我的应用程序目前是在 .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",它就不起作用了。我认为这是因为他们的一些税务引擎是 pre v4 程序集。
所以我的问题是我如何从这里开始?将我的应用程序留在 .NET 3.5 中实际上只是临时修复。
我可以在运行时切换 useLegacyV2RuntimeActivationPolicy(即在我加载 Crystal Report 之前将其设置为 true)还是这是一个 hack / 甚至可能?
有没有更好的办法?
任何见解将不胜感激。
谢谢,
【问题讨论】:
-
如果您查看我的问题中的 app.config 代码,您会发现它与您说我的问题“可能重复”的问题的已接受答案相同,但答案确实如此不适合我。我还说我读了很多类似的问题,但没有解决我的问题,这就是我发帖的原因。我的问题不是重复的,所以下次请仔细阅读这个问题。谢谢。
-
您使用的是什么版本的 Visual Studio? (只是检查旧版本是 Crystal 自带的,而新版本没有)我在 VS2008 中创建的项目中遇到了类似的问题,目前在 VS 2013 中维护。
-
我正在使用 VS 2012 和 2013 (我实际上在 VS 2010 中尝试过也无济于事)。我不能确定这个项目是在哪个版本的 VS 中创建的,但我会假设它是 VS 2008。
标签: c# .net vb.net crystal-reports clr