VS2012载入DLL编译出现试图载入格式不对的程序;以及执行出现Mixed mode assembly is built against version 'v2.0.50727' of theruntime and cannot be loaded in the 4.0 runtime without additionalconfiguration information

转载请注明出处:http://blog.csdn.net/aaa123524457/article/details/47860991

先说明一下编译环境和项目大概。

使用的是VS2012,C# ;调用一个DLL文件,二次封装后得到还有一个DLL文件,给matlab调用;

新建VS2012 C# 的class library项目后。把要调用的DLL加入引用后编译无法通过,出现图1错误:

错误例如以下图:

第一个错误:

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">

第一个问题解决后,编译能够通过,可是为了调试须要。把项目由class library 改成console application之后,能够编译。可是执行出错。例如以下图

第二个错误:

转载请注明出处:http://blog.csdn.net/aaa123524457/article/details/47860991

关于第一个错误:

事实上这个错误在非常久之前就已经遇到了。并且也知道是怎么回事,简单的就攻克了。这次是同一时候遇到了第二个问题,所以就一起备忘一下。

事实上出现这个问题的解决办法是:我调用的DLL文件是32位的,而我如今用的项目却是64位的。事实上无论调用的DLL文件和项目哪个是32位、哪个是64位。仅仅要不统一的话,一般都会出现这个问题。

解决也非常easy。既然是不一致导致的,那就改成一致呗。

右键项目,把platform target 改成x86就可以。由于我调用的DLL是32位的。假设是相反的,那就对应该回来就可以。

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">

顺便说一下:新建项目的时候,默认是any cpu。它会依据你的系统去默认设置位,比方我的电脑是64位。那么它就是64位。

好了,第一个问题就这么攻克了。

那么说说第二个问题:

该错误的简单翻译是:混合模式引用是建立针对版本号“v2.0.50727”的执行时,不能载入在4.0执行时,没有额外的配置信息。

既然是执行时的配置信息问题,我当时第一个想到的就是须要更改VS项目的配置文件信息,可是一開始我也不知道怎么改。

以下是我这个项目里面的配置文件信息;好既然不知道。那我就仅仅有一个一个去查:

<?xmlversion="1.0"?>

<configuration>

<startup>

<supportedRuntimeversion="v4.0"sku=".NETFramework,Version=v4.0"/>

</startup>

</configuration>

然后,还真的被我找到了!

是这个Startup须要改!

微软的官方解析连接:https://msdn.microsoft.com/zh-cn/library/bbx34a2h(v=vs.100).aspx里面说的非常具体:

转载请注明出处:http://blog.csdn.net/aaa123524457/article/details/47860991

这次就知道怎么修复了!仅仅要在配置信息里把这个属性改为true就能够了!

<?

xmlversion="1.0"?>

<configuration>

<startupuseLegacyV2RuntimeActivationPolicy="true">

<supportedRuntimeversion="v4.0"sku=".NETFramework,Version=v4.0"/>

</startup>

</configuration>

到此。两个问题都攻克了!

转载请注明出处:http://blog.csdn.net/aaa123524457/article/details/47860991


VS2012载入DLL编译出现试图载入格式不对的程序; 以及执行出现Mixed mode assembly is built against version &#39;v2.0.50727&#39; of the的更多相关文章

  1. 编译器错误消息: CS0016: 未能写入输出文件“c:/Windows/Microsoft.NET/Framework/v2.0.50727/....dll”--“拒绝访问。

    错误如下: “/”应用程序中的服务器错误. 编译错误 说明: 在编译向该请求提供服务所需资源的过程中出现错误.请检查下列特定错误详细信息并适当地修改源代码. 编译器错误消息: CS0016: 未能写入 ...

  2. CS0016: 未能写入输出文件“c:\windows\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\data\34aae060\b7daa87d\App_Web_addadvice.aspx.cdcab7d2.ekhlcbjd.dll”--“目录名无效。 ”

    产生原因: 应用程序运行时产生的临时文件需要存放到c:"windows"temp 文件夹下 而运行基于microsoft .net framework 框架下的应用程序 需要对te ...

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

    其他信息: V5.7.4.4 Can't find the System.Data.SQLite.dll more info : 混合模式程序集是针对"v2.0.50727"版的运 ...

  4. 检测到 LoaderLock:DLL"XXXX"正试图在OS加载程序锁内执行

    解决方法: ctrl+D+E或alt+ctl+e或使用菜单调试——>异常——>异常窗口——>Managed Debugging Assistants——>去掉LoaderLoc ...

  5. 【转载】错误 CS0016: 未能写入输出文件“c:/WINDOWS/Microsoft.NET/Framework/v2.0.50727/Temporary ASP.NET Files/.........dll”--“拒绝访问。 ”

    win7中安装asp.net的问题 编译器错误信息: CS0016: 未能写入输出文件问题解决办法 编译错误 说明: 在编译向该请求提供服务所需资源的过程中出现错误.请检查下列特定错误详细信息并适当地 ...

  6. CS0016: 未能写入输出文件“c:\Windows\Microsoft.NET\Framework64\v2.0.50727\Temporary ASP.NET Files\root\921bbfc4\ca7cf42\App_Code.fu98jwep.dll”--“拒绝访问。 ”

    在本地开发环境没问题,但是发布到服务器出现:未能写入输出文件“c:\Windows\Microsoft.NET\Framework64\v4.0.30319\Temporary ASP.NET Fil ...

  7. CS0016: 未能写入输出文件“c:\Windows\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\root\f834824f\75776659\xxx.dll”--“拒绝访问。 ”

    解决方法: 1.找到C:\windows\Temp文件夹 右键属性-->安全选项卡,给IIS_IUSRS帐号赋予权限

  8. 动态载入DLL所需要的三个函数详解(LoadLibrary,GetProcAddress,FreeLibrary)

    动态载入 DLL 动态载入方式是指在编译之前并不知道将会调用哪些 DLL 函数, 完全是在运行过程中根据需要决定应调用哪些函数. 方法是:用 LoadLibrary 函数加载动态链接库到内存,用 Ge ...

  9. 【转载】动态载入DLL所需要的三个函数详解(LoadLibrary,GetProcAddress,FreeLibrary)

    原文地址:https://www.cnblogs.com/westsoft/p/5936092.html 动态载入 DLL 动态载入方式是指在编译之前并不知道将会调用哪些 DLL 函数, 完全是在运行 ...

随机推荐

  1. jquery源码03 (3184 , 3295) support : 功能检测

    <!DOCTYPE HTML> <html> <head> <meta http-equiv="Content-Type" content ...

  2. 圆形头像CircleImageView和Cardview使用

    效果: 圆形头像在我们的日常使用的app中很常见,因为圆形的头像比较美观. 使用圆形图片的方法可能有我们直接将图片裁剪成圆形再在app中使用, 还有就是使用自定义View对我们设置的任何图片自动裁剪成 ...

  3. POJ 3172 (认真读题的题)

    题目: 思路: 题目很有意思 首先 题里说:N<=1000 题里又说 诶呦 woc? 这不自相矛盾嘛 最坏情况也就是个 斐波那契数列 几十个数 暴搜+剪枝不就好了嘛 剪枝:从大往小搜,如果前缀和 ...

  4. Spark编程模型(博主推荐)

    福利 => 每天都推送 欢迎大家,关注微信扫码并加入我的4个微信公众号:   大数据躺过的坑      Java从入门到架构师      人工智能躺过的坑         Java全栈大联盟   ...

  5. LuoguP2765 魔术球问题(最大流)

    题目描述 «问题描述: 假设有n根柱子,现要按下述规则在这n根柱子中依次放入编号为1,2,3,...的球. (1)每次只能在某根柱子的最上面放球. (2)在同一根柱子中,任何2个相邻球的编号之和为完全 ...

  6. CMDB学习之二数据采集

    首先也要调用插件的方式,来写采集数据插件,在src目录下创建一个插件 plugins ,然后在plugins下创建disk.py ,memory.py, network.py等等 src plugin ...

  7. 微信小程序从零开始开发步骤(六)4种页面跳转的方法

    用法:用于页面跳转,相当于html里面的<a></a>标签. API教程:https://mp.weixin.qq.com/debug/wxadoc/dev/component ...

  8. 从头认识java-15.7 Map(4)-介绍HashMap的工作原理-hash碰撞(常常作为面试题)

    这一章节我们来讨论一下hash碰撞. 1.什么是hash碰撞? 就是两个对象的key的hashcode是一样的,这个时候怎么get他的value呢? 答案是通过equals遍历table那个位置上面的 ...

  9. SDUT--Pots(二维BFS)

    Pots Time Limit: 1000ms   Memory limit: 65536K  有疑问?点这里^_^ 题目描写叙述 You are given two pots, having the ...

  10. FragMent-通过Arguments方法 跟activity通信

    今天主要学习下通过Arguments,实现activity 给fragment传递数据.这个方法也是通过参数bundle来进行数据传输的 直接看如下代码 一,定义一个fragment,在oncreat ...