我有一个引用第三方DLL的.Net 4.0应用程序,显然不支持4.0。在配置文件中使用useLegacyV2RuntimeActivationPolicy =“true”使其在本地运行时工作,但在IIS 7.5中的服务器上运行时则不行。
第三方软件来自http://crystal-decisions-inc.software.informer.com/,DLL:
本地计算机和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'或其中一个它的依赖关系。系统找不到指定的文件。“
当我添加相同的&lt; startup&gt;标记到网站的web.config,它是否存在似乎没有任何区别。当那行代码被命中时,代码就会死掉;它不会抛出任何托管异常。
用Google搜索帮助,所有页面基本上都说明添加配置设置会为他们修复,通常会引用这个或略有变化:
<startup useLegacyV2RuntimeActivationPolicy="true">
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/>
</startup>
但这对我的申请不起作用。由于我无法从Web应用程序中获得实际错误,因此我不知道下一步该怎么做,感谢帮助。
答案 0 :(得分:1)
由于还没有人回答,我只会投入五美分。
useLegacyV2RuntimeActivationPolicy允许包含.NET 2.0之前的“怪异”(通常涉及混合程序集)。但它是以牺牲并排执行为代价的。
我认为您没有找到正确的参赛地点。不要混淆App.Config文件的Web.Config。 Web.Config服务于另一个完全不同的目的。我假设你需要找到可执行文件的App.Config文件。
(无论是否IIS都会对此设置作出积极回应,我不知道。)