问题描述
最近更新的程序,用户在使用过程中报如下错误:“混合模式程序集是针对v2.0.50727版的运行时生成的,在没有配置其他信息的情况下,无法再4.0运行时中加载该程序集”。错误懒得截图,在网上找了一个类似的报错截图,如下所示(下图来源为参考文献1)。
解决方案
程序是.net framework4.0开发的,更新的功能中新增了浏览pdf文件功能,用的是第三方的pdf浏览程序集,该程序集是基于.net framework 2.0开发的。根据百度的资料(报错的原因可以参考参考文献2),.net framework4.0开发的程序中调用.net framework 2.0开发的程序集,需要在应用程序的app.config文件的startup标签内增加对.net framework 2.0的支持,即设置成如下方式:
<startup useLegacyV2RuntimeActivationPolicy="true">
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0" />
<supportedRuntime version="v2.0.50727"/>
</startup>
设置app.config后,重新编译应用程序。再运行即可正常使用pdf浏览功能。
参考文献:
[1]https://www.cnblogs.com/Jacklovely/p/5833615.html
[2]https://www.cnblogs.com/tinaluo/p/6651918.html
[3]https://docs.microsoft.com/zh-cn/dotnet/framework/configure-apps/file-schema/startup/startup-element?redirectedfrom=MSDN
[4]https://docs.microsoft.com/zh-cn/dotnet/framework/configure-apps/file-schema/startup/supportedruntime-element?redirectedfrom=MSDN