vs2008开发的winform程序怎样才能在.NET Framework2.0下运行?

时间:2021-05-14 17:41:48
我用VS2008写了个程序,想用在XP下面,必须得装.NET Framework,但3.5版本的.NET Framework有200多MB,太大了,2.0版本的才20多MB。我想请问:怎么改才可以用让我的程序在.NET Framework2.0下运行?我看了下我的项目属性,大部分是引用的2.0的空间,但也有小部分引用的3.5的空间。网上搜了下帖子,有的说VS2008新建工程时可以选择.NET Framework2.0,可我程序已经写得差不多了,不想重写。请问有何好方法?

12 个解决方案

#1


将你的项目属性的目标框架选择为.NET Framework2.0,生成看成功不?
要是有冲突的话,建议你还是用3.5比较好。

#2


项目属性改为2.0,重新编译,会丢失3.5的部分引用,如果你程序中没有用到,那么编译成功,万事大吉。
如果用到了,那么看用到哪部分,如果是Linq,可以使用LinqBridge项目替代,不需要改代码,如果是WorkFlow什么的,那暂时没办法。

#3


那就得在2.0下开发,或开发时选择2.0,打包时,打包2。0

#4


大部分是引用的2.0的空间,但也有小部分引用的3.5的空间

这就决定要你用3.5, 不用的话,你就在2.0下写,把用到3.0的对应的DLL引用过来。

#5


引用 2 楼 cosmo_sei 的回复:
项目属性改为2.0,重新编译,会丢失3.5的部分引用,如果你程序中没有用到,那么编译成功,万事大吉。
如果用到了,那么看用到哪部分,如果是Linq,可以使用LinqBridge项目替代,不需要改代码,如果是WorkFlow什么的,那暂时没办法。

我已把项目属性改为2.0了,程序运行正常。但我查看引用,里面确实有个引用System.Xml.Linq,并显示“系统无法找到指定的引用”。
1、请问楼上说的可以使用LinqBridge项目替代,具体怎么操作?请指教。或者还有什么其它的办法?
2、系统找不到这个引用,为什么我的程序还是能正常运行?
3、本来项目引用里有一个System.Core(版本显示为3.5.0.0),改为2.0后,为什么没有这个引用了?为什么程序还是能正常运行?不知道以为会不会出问题?

#6


引用 5 楼 wangfeng12345678 的回复:
我已把项目属性改为2.0了,程序运行正常。但我查看引用,里面确实有个引用System.Xml.Linq,并显示“系统无法找到指定的引用”。
1、请问楼上说的可以使用LinqBridge项目替代,具体怎么操作?请指教。或者还有什么其它的办法?
2、系统找不到这个引用,为什么我的程序还是能正常运行?
3、本来项目引用里有一个System.Core(版本显示为3.5.0.0),改为2.0后,为什么没有这个引用了?为什么程序还是能正常运行?不知道以为会不会出问题?

1 程序运行正常说明没有使用到linq,直接将这个找不到的引用移除即可。
LinqBridge也就是个DLL(编译后的),你直接添加引用即可,相当于在.net2.0下添加了System.Linq引用。http://www.albahari.com/nutshell/linqbridge.aspx

2 代码能编译通过即可。引用版本冲突会有错误,引用不存在是警告。

3 System.Core就是3.5的主类库,Linq也就在这个类库里,改成2.0自然就没了。

#7


.net3.5仍然跑在2.0的CLR上,所以只要你没有引用到3以后的内容,转为2.0版是没问题的。

#8


感谢楼上几位的耐心帮助。现在基本上明白了。
最后问一下:也就是说用VS2008开发,只要项目属性里目标框架选择为.NET Framework2.0,那么源程序中引用的dll就都是2.0版本的,不会引用3.5版本的。开发出来的程序就可以在.NET Framework2.0下运行。对吧?

#9


VS2008里如果项目属性里目标框架选择为.NET Framework2.0,也基本上就相当于是用VS2005开发?

#10


学习啦,,顶贴挣积分,,,

#11


引用 9 楼 wangfeng12345678 的回复:
VS2008里如果项目属性里目标框架选择为.NET Framework2.0,也基本上就相当于是用VS2005开发?

有区别。在2008上你就可以用.net3后的新增的语法和语言特性——lambda表达式,扩展方法等。

#12


真实,程序更新太快也不是好事,怎么也要考虑个兼容问题。
别人不会因为要用你的程序,还要安装很多其他辅助的东西。

#1


将你的项目属性的目标框架选择为.NET Framework2.0,生成看成功不?
要是有冲突的话,建议你还是用3.5比较好。

#2


项目属性改为2.0,重新编译,会丢失3.5的部分引用,如果你程序中没有用到,那么编译成功,万事大吉。
如果用到了,那么看用到哪部分,如果是Linq,可以使用LinqBridge项目替代,不需要改代码,如果是WorkFlow什么的,那暂时没办法。

#3


那就得在2.0下开发,或开发时选择2.0,打包时,打包2。0

#4


大部分是引用的2.0的空间,但也有小部分引用的3.5的空间

这就决定要你用3.5, 不用的话,你就在2.0下写,把用到3.0的对应的DLL引用过来。

#5


引用 2 楼 cosmo_sei 的回复:
项目属性改为2.0,重新编译,会丢失3.5的部分引用,如果你程序中没有用到,那么编译成功,万事大吉。
如果用到了,那么看用到哪部分,如果是Linq,可以使用LinqBridge项目替代,不需要改代码,如果是WorkFlow什么的,那暂时没办法。

我已把项目属性改为2.0了,程序运行正常。但我查看引用,里面确实有个引用System.Xml.Linq,并显示“系统无法找到指定的引用”。
1、请问楼上说的可以使用LinqBridge项目替代,具体怎么操作?请指教。或者还有什么其它的办法?
2、系统找不到这个引用,为什么我的程序还是能正常运行?
3、本来项目引用里有一个System.Core(版本显示为3.5.0.0),改为2.0后,为什么没有这个引用了?为什么程序还是能正常运行?不知道以为会不会出问题?

#6


引用 5 楼 wangfeng12345678 的回复:
我已把项目属性改为2.0了,程序运行正常。但我查看引用,里面确实有个引用System.Xml.Linq,并显示“系统无法找到指定的引用”。
1、请问楼上说的可以使用LinqBridge项目替代,具体怎么操作?请指教。或者还有什么其它的办法?
2、系统找不到这个引用,为什么我的程序还是能正常运行?
3、本来项目引用里有一个System.Core(版本显示为3.5.0.0),改为2.0后,为什么没有这个引用了?为什么程序还是能正常运行?不知道以为会不会出问题?

1 程序运行正常说明没有使用到linq,直接将这个找不到的引用移除即可。
LinqBridge也就是个DLL(编译后的),你直接添加引用即可,相当于在.net2.0下添加了System.Linq引用。http://www.albahari.com/nutshell/linqbridge.aspx

2 代码能编译通过即可。引用版本冲突会有错误,引用不存在是警告。

3 System.Core就是3.5的主类库,Linq也就在这个类库里,改成2.0自然就没了。

#7


.net3.5仍然跑在2.0的CLR上,所以只要你没有引用到3以后的内容,转为2.0版是没问题的。

#8


感谢楼上几位的耐心帮助。现在基本上明白了。
最后问一下:也就是说用VS2008开发,只要项目属性里目标框架选择为.NET Framework2.0,那么源程序中引用的dll就都是2.0版本的,不会引用3.5版本的。开发出来的程序就可以在.NET Framework2.0下运行。对吧?

#9


VS2008里如果项目属性里目标框架选择为.NET Framework2.0,也基本上就相当于是用VS2005开发?

#10


学习啦,,顶贴挣积分,,,

#11


引用 9 楼 wangfeng12345678 的回复:
VS2008里如果项目属性里目标框架选择为.NET Framework2.0,也基本上就相当于是用VS2005开发?

有区别。在2008上你就可以用.net3后的新增的语法和语言特性——lambda表达式,扩展方法等。

#12


真实,程序更新太快也不是好事,怎么也要考虑个兼容问题。
别人不会因为要用你的程序,还要安装很多其他辅助的东西。