我有一个引用第三方 DLL 的 .Net 4.0 应用程序,它显然不支持 4.0。在配置文件中使用 useLegacyV2RuntimeActivationPolicy="true" 可以使其在本地运行时工作,但在 IIS 7.5 中在我们的服务器上运行时不起作用。
第三方软件来自http://crystal-decisions-inc.software.informer.com/,DLL的:
- CrystalDecisions.CrystalReports.Engine
- CrystalDecisions.ReportSource
- CrystalDecisions.Shared
本地计算机和 Web 服务器都安装了相同的 Crystal Reports 运行时 CRRuntime_32bit_13_0_5.msi。
我的本地应用程序正在使用一个测试项目运行,该项目是一个 Windows 窗体应用程序。在 app.config 中,包含以下内容时它可以工作:
<configuration>
...
<startup useLegacyV2RuntimeActivationPolicy="true" >
</startup>
</configuration>
如果不包括在内,本地代码会导致此异常:
“无法加载文件或程序集 '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' 或其依赖项之一。该系统找不到指定的文件。”
当我将相同的 <startup> 标记添加到网站的 web.config 时,它是否存在似乎没有任何区别。当那行代码被命中时,代码就死了;它不会抛出任何托管异常。
谷歌搜索帮助,所有页面基本上都声明添加配置设置为他们修复了它,通常引用这个或一个轻微的变体:
<startup useLegacyV2RuntimeActivationPolicy="true">
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/>
</startup>
但这对我的应用程序不起作用。由于我无法从 Web 应用程序中获得实际错误,因此我不知道下一步该去哪里,感谢您的帮助。