zoukankan      html  css  js  c++  java
  • VS2012载入DLL编译出现试图载入格式不对的程序; 以及执行出现Mixed mode assembly is built against version 'v2.0.50727' of the

    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错误:

    错误例如以下图:

    第一个错误:

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

    第二个错误:

     

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

    关于第一个错误:

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

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

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

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


    顺便说一下:新建项目的时候,默认是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


  • 相关阅读:
    angular反向代理配置
    实现对Asp.NetMvc及Asp.NetCore的权限控制
    C# 语言特性发展史
    在angular 6中使用 less
    使用WeihanLi.Redis操作Redis
    [svc]jq神器使用
    [sh]shell脚本栗子
    [k8s]nginx-ingress配置4/7层测试
    [svc]nginx-module-vts第三方模块安装配置
    [k8s]helm原理&私有库搭建&monocularui和kubeapp探究
  • 原文地址:https://www.cnblogs.com/zhchoutai/p/7124691.html
Copyright © 2011-2022 走看看