用.net 2.0开发的程序在.net 4.0的环境中运行的解决方案

引用:.NET2.0程序集无法在.net 4.0 中运行的解决方案

1. 原来是在.net 2.0 (VS2008)的环境下的程序,通过升级到.net 4.0 (VS2013)导致程序运行不了

就是通过VS2013直接打开VS2008的项目,然后进行自动升级,升级后,可能有些程序在VS2013中

直接"F5"启动不起来,请找到 app.config配置文件:

找到 <starup>节点,内容大家一看就知道了,无非是指明运行时使用的.net环境

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

  在本地调试时,启动不起来,就将所有 supportedRuntime 节点删掉就可以了,

不过特别注意:在正式发布软件的时候,还得必须加回去,否则你的软件就无法正常启动起来

究其原因,其实就是因为.net 4.0和 .net 2.0存在诸多兼容问题.....

参考:http://blog.sina.com.cn/s/blog_6622f5c301012mxm.html

时间: 2024-10-07 13:23:27

用.net 2.0开发的程序在.net 4.0的环境中运行的解决方案的相关文章

不允许用(a+b)/2这种方式求两个数的均值;如下程序在Linux和32位集成开发环境中运行

#define MAX(a,b) ((a)>(b)?(a):(b)) #include<stdio.h> int main() { int a = 10; int b = 20; int c = 0; int arevage = 0; c = MAX(a,b); arevage = c + (a - b)/2; printf("%d\n",arevage); return 0; } arevage可以用来定义变量吗 为什么 int arevage = 0;可以在win

python环境中运行程序

运行Python程序,我们比较常用的是直接在Windows命令提示窗口或者Linux终端或shell窗口中,直接:Python *.py,或者在Linux环境下,在投不中,加入: #!/usr/bin/env python 然后 ./*.py 直接运行 但是进入Python后,该怎么运行呢? 这里就简单介绍一下,这里先简单介绍下os的部分功能. import os; #在Python环境中,引入环境,是必须的:具体可以查看Python中的os os.getcwd(); #得到当前工作目录 os.

程序日志-应用程序-特定 权限设置并未向在应用程序容器 不可用 SID (不可用)中运行的地址 LocalHost (使用 LRPC) 中的用户 NT AUTHORITY\SYSTEM SID (S-1-5-18)授予针对 CLSID 为 {D63B10C5-BB46-4990-A94F-E40B9D520

应用程序-特定 权限设置并未向在应用程序容器 不可用 SID (不可用)中运行的地址 LocalHost (使用 LRPC) 中的用户 NT AUTHORITY\SYSTEM SID (S-1-5-18)授予针对 CLSID 为 {D63B10C5-BB46-4990-A94F-E40B9D520160}.APPID 为 {9CA88EE3-ACB7-47C8-AFC4-AB702511C276} 的 COM 服务器应用程序的 本地 激活 权限.此安全权限可以使用组件服务管理工具进行修改. 根据

.net 4.0 运行时中运行.net2.0开发的程序

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

AForge.NET .NET2.0程序集无法在.net 4.0 中运行的解决方案

如有雷同,不胜荣欣,若转载,请注明 最近在项目上一直使用.net4.0 framework,突然发现一个AForge.net中使用ffmepeg下的一个dll时,提示只能在2.0下运行,在众多MSDN和资料的帮助下终于又提高 了一点,今特地记录一下,一边日后遗忘,解决方法如下: 就是在app.config中添加一个配置节: startup <?xml version="1.0" encoding="utf-8" ?><configuration&g

(转载) .NET2.0程序集无法在.net 4.0 中运行的解决方案

首先在MSDN上看到 4.0 的更新日志中有如下这条: .NET Framework 4 不能自动使用自己的公共语言运行时版本来运行由 .NET Framework 早期版本生成的应用程序. 若要使用 .NET Framework 4 运行较早的应用程序,则必须使用 Visual Studio 中项目的属性指定的目标 .NET Framework 版本编译应用程序, 或使用应用程序配置文件中的 <supportedRuntime> 元素 可指定所支持的运行时. 解决方案,就是在app.conf

第七章 程序是在何种环境中运行的

在这一章中,我知道了应用是必须在一定的环境下才能运行的,其运行环境是操作系统和硬件构成的. 同样类型的硬件可以选择安装多种操作系统,而不同的硬件类型需要不同的操作系统.说起硬件,CPU是特别重要的参数,由于CPU能解释其自身固有的机器语言,所以不同的CPU能解释的机器语言也是不同的.还有就是机器语言的程序称为本地代码,而源代码就是用C语言等编写的程序.(应用软件包收录的是本地代码) 20世纪80年代的MS-DOS操作系统,其每个机型都需要有专门的MS-DOS应用,这是因为应用软件的功能中存在着直

经xcode8.0修改后的.xib文件在xcode7.3环境中报错的解决方案

今天遇到一个xcode7.3升级 xcode8.0 后的问题,原本用xcode7.3创建的.xib文件在xcode8.0中打开后会有如下的选择设备的提示,选择后,将工程在xcode7.3环境中打开刚被修改过的.xib文件会有报错,这是版本不兼容的问题. 目前我的解决办法就是,将刚被修改过的工程在xcode7.3中打开,找到被修改的.xib文件,右击打开Open As-->Source Code 打开后找到如下的一段代码 将  version="11161"   改成 10085

NetworkComms网络程序开发笔记(一): 在多线程环境中安全的触发事件

在多线程中触发事件可能抛出引用为空的异常,这个问题网上有很多论述. NetworkComms通信框架本身几乎没有使用事件,所以在核心通信框架中不存在这个问题. 在网上查了很多资料,比如下面这个: 我们采用的方案: public static class Extensions { public static void Raise<T>(this EventHandler<T> handler, object sender, T args) where T : EventArgs {