日期:2014-05-16  浏览次数:20731 次

调试c#运行报错系列一

混合模式程序集是针对“v2.0.50727”版的运行时生成的,在没有配置其他信息的情况下,无法在 4.0 运行时中加载该程序集

 

其调用的方法是从sqlite数据库中获取原来已经使用过的数据库连接,当时也没注意,就是准备设断点然后单步调试,结果竟然是断点无法进入方法体内,后来仔细看了一下方法体的时候发现了一个问题,就是现有的System.Data.Sqlite这个数据访问provider是针对.NET2.0环境开发(最新的版本是1.0.66.0,2010年4月18日发布的),而目前官方也没有给出最新的.NET4的数据访问支持。

既然出现这个问题,那肯定是上GOOGLE搜索解决方案,毕竟微软不可能因为升级到了.NET4.0的程序无法访问.NET2.0的程序集吧。后来在著名的stackoverflow.com上果然找到了解决方案,就是在app.config中添加一个配置节:startup

<startup useLegacyV2RuntimeActivationPolicy="true">

<supportedRuntime version="v4.0"/>

</startup>

修改后的如下图:

<?xml version="1.0"?>
<configuration>
  <startup useLegacyV2RuntimeActivationPolicy="true">
    <supportedRuntime version="v4.0" sku = ".NETFramework,Version=v4.0"/>
    <supportedRuntime version="v2.0.50727"/>
  </startup>
</configuration>