none
.net framework 2.0编译,却需要.net framework4.0环境运行问题 RRS feed

  • 问题

  • 小弟起了一个VS2010,将项目的vcprojx文件改了下,其中Globals这段改成下面这样了。

    <!--
      <PropertyGroup Label="Globals">
        <ProjectGuid>{E023E6AA-5790-49C4-8A29-A818D452858D}</ProjectGuid>
        <TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
        <Keyword>ManagedCProj</Keyword>
        <RootNamespace>libChest</RootNamespace>
      </PropertyGroup>
      -->
      <PropertyGroup Label="Globals">
        <TargetFrameworkVersion>v2.0</TargetFrameworkVersion>
        <ProjectGuid>{603C6853-166F-A229-0CE7-B001CAF96C76}</ProjectGuid>
        <SccProjectName>SAK</SccProjectName>
        <SccAuxPath>SAK</SccAuxPath>
        <SccLocalPath>SAK</SccLocalPath>
        <SccProvider>SAK</SccProvider>
        <Keyword>Win32Proj</Keyword>
        <RootNamespace>AssemblyHelper</RootNamespace>
      </PropertyGroup>

    然后,在项目->属性,将VC90改成V100,编译出来一个DLL。

    在一台没有.net framework 4.0环境的电脑下运行,提示我

    未能加载文件或程序集 或它的某一个依赖项。生成此程序集的运行时比当前加载的运行时新,无法加载此程序集。

    经检查,该电脑,已安装.net framework 2.0。之后,装了.net framework 4.0之后, 既可以正常运行。

    小弟现在有个需求,需要将DLL编译成.net framework 2.0就能用的,请问各位,这是什么原因造成的?

    小弟的OS 是 WIN7 X64。 测试机的环境也是 WIN7  X64



    2013年5月10日 9:29

答案

  • 到客户机上设置显示隐藏文件;

    然后,找找有没有跟你dll同名的xx.dll.config文件

    然后,看看里面的framework version设置是多少

    以前我遇到类似的问题是因为这个导致的,不清楚你的dll是什么类型的。COM互操作的、还是标准dll还是。。。。


    No music, no way coolchae@gmail.com

    2013年5月13日 5:29