一些背景信息 - 我的应用程序目前是在.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 /甚至可能吗?
有更好的方法吗?
任何见解都将不胜感激。
谢谢,