.net2.0和4.0不同的.net版本的条件编译

【菜科解读】
今天碰到这样一个需求,写的C#库,有时候需要在.net 2.0下编译,有时候需要在.net 4.0下编译,这个库里使用了lambda表达式,使用了扩展方法,使用了几个 System.Core.dll 引入的Action类型。
为了在 .net 2.0 下能够编译成功,我写了一个文件 Patch.cs,定义了 System.Runtime.CompilerServices.ExtensionAttribute 类型,这样就可以在2.0下使用lambda表达式和扩展方法了,同时,添加了几个用到的System.Core.dll 引入的Action类型:
1: namespace System.Runtime.CompilerServices 2: { 3: public class ExtensionAttribute : Attribute { } 4: } 5: 6: namespace System 7: { 8: public delegate void Action(); 9: public delegate void Action(T0 t0,T1 t1);10: }11:
然而,要在.net 4.0 下编译,因为类型已经存在,必须注释掉Patch.cs,很麻烦。
于是想通过条件编译来解决,即:
1: #if NET2 2: 3: namespace System.Runtime.CompilerServices 4: { 5: public class ExtensionAttribute : Attribute { } 6: } 7: 8: namespace System 9: {10: public delegate void Action();11: public delegate void Action(T0 t0,T1 t1);12: }13: 14: #endif
问题是,.net 里没有定义和.net版本有关的指示符。
怎么办呢?自己动手,丰衣足食,使用Build Events在编译之前自动侦测出项目所使用的.net版本,定义出我们想要的指示符。
在 C#模板编程(2): 编写C#预处理器,让模板来的再自然一点 一文中,写了一个程序 Csmacro.exe 来实现C#下的模板机制,本文在Csmacro.exe 的基础上,增加侦测项目所引用的.net 版本的功能。
原理:查找项目目录下的 csproj 文件,解析它,找到节点TargetFrameworkVersion,判断.net版本,然后生成一个Csmacro_Template.cs文件,在里面 #define 版本指示符。
例如,对 .Net 2.0 项目,生成的 Csmacro_Template.cs 文件内容为:
#define NET2
修改后Csmacro的代码可在:https://github.com/xiaotie/GebCommon上下载(目前只处理了 .net 2.0 和 4.0,如需要针对其它版本,可自行修改代码)。
有了 Csmacro,一切就好办了。
第一步,把 Csmacro.exe 放在Path路径下
第二步,打开需要条件编译的项目,添加 Pre-build 事件:Csmacro.exe $(ProjectDir)
第三步,编辑源文件,如,Patch.cs 文件修改为:
1: #region include "Csmacro_Template.cs" 2: #endregion 3: 4: #if NET2 5: 6: namespace System.Runtime.CompilerServices 7: { 8: public class ExtensionAttribute : Attribute { } 9: }10: 11: namespace System12: {13: public delegate void Action();14: public delegate void Action(T0 t0,T1 t1);15: }16: 17: #endif
#region include 是我引入的 Csmacro 宏语法。
详见 C#模板编程(2): 编写C#预处理器,让模板来的再自然一点 一文。
点击编译,系统会生成一个 Patch_Csmacro.cs 文件,内容如下:
1: #define NET2 2: 3: #if NET2 4: 5: namespace System.Runtime.CompilerServices 6: { 7: public class ExtensionAttribute : Attribute { } 8: } 9: 10: namespace System11: {12: public delegate void Action();13: public delegate void Action(T0 t0,T1 t1);14: }15: 16: #endif
第四步,把生成的 Patch_Csmacro.cs 添加到项目中来。
搞定以后,选择不同的target,编译时产生的就是对该target的条件编译!
.net2.0,和,4.0,不同,的,.net,版本,条件,[Win7和Win8操作系统的比较及应用指南]
软件支持 在线重装、U盘制作、自定义重装 等多种模式。
简介:Win7和Win8是微软公司推出的两个非常受欢迎的操作系统,它们在界面设计、功能和性能方面都有一定的差异。
本文将比较这两个操作系统的优劣,并为读者提供应用指南,帮助他们选择合适的操作系统。
工具原料:本文所使用的电脑品牌型号为戴尔XPS 13,操作系统版本为Windows 10 Pro,软件版本为Microsoft Office 2019。
正文:一、界面设计Win7和Win8的界面设计有着明显的差异。
Win7沿用了经典的Windows界面,具有较为传统和稳定的风格。
而Win8则采用了全新的Metro界面,更加注重触摸屏的操作特性。
从界面设计角度来说,Win7比较适合那些喜欢传统风格、不喜欢变化的用户;而Win8则更适合具有先进科技追求的用户,尤其是那些使用触摸屏设备的用户。
二、功能在功能方面,Win7和Win8都具备了常用的办公、娱乐和互联网功能。
不过,Win8相较于Win7,在应用商店和软件兼容性方面有着明显的优势。
Win8的应用商店提供了大量的应用程序和游戏,用户可以方便地下载和安装。
同时,Win8还优化了触屏操作和多任务处理的功能,提升了用户体验。
三、性能Win7和Win8的性能也有着一定的差异。
Win7的系统要求较低,对硬件要求不高,在老旧设备上运行良好。
而Win8则更适合搭载高配置硬件的设备,以发挥其更强的性能。
因此,如果你的电脑配置较低,Win7可能是更好的选择;但如果你追求更流畅的操作体验和更快的速度,那么Win8可能更适合你。
总结:通过本文的比较和应用指南,我们可以得出以下结论:选择Win7还是Win8取决于个人需求和偏好。
如果你更喜欢传统风格的界面,对触摸屏操作不感兴趣,或者你的电脑配置较低,那么Win7是一个不错的选择。
而如果你喜欢时尚、先进的界面,追求更好的应用和游戏资源,或者你的设备配置较高,那么Win8可能更适合你。
最重要的是,无论选择哪个操作系统,我们都要根据自己的需求合理使用,并不断学习和适应新的技术和功能。
标签: 注意:本站所刊载的文章均为学习交流之用,请勿用于商业用途。
对于商业使用,请联系各自版权所有者,否则法律问题自行承担。
Win7系统升级指南:全面解析升级步骤与要点 Win7系统损坏修复教程:详细步骤助你快速解决问题 [Win7和Win8操作系统的比较及应用指南] 分类于: 回答于:2023-10-21 简介:Win7和Win8是微软公司推出的两个非常受欢迎的操作系统,它们在界面设计、功能和性能方面都有一定的差异。
本文将比较这两个操作系统的优劣,并为读者提供应用指南,帮助他们选择合适的操作系统。
工具原料:本文所使用的电脑品牌型号为戴尔XPS 13,操作系统版本为Windows 10 Pro,软件版本为Microsoft Office 2019。
正文:一、界面设计Win7和Win8的界面设计有着明显的差异。
Win7沿用了经典的Windows界面,具有较为传统和稳定的风格。
而Win8则采用了全新的Metro界面,更加注重触摸屏的操作特性。
从界面设计角度来说,Win7比较适合那些喜欢传统风格、不喜欢变化的用户;而Win8则更适合具有先进科技追求的用户,尤其是那些使用触摸屏设备的用户。
二、功能在功能方面,Win7和Win8都具备了常用的办公、娱乐和互联网功能。
不过,Win8相较于Win7,在应用商店和软件兼容性方面有着明显的优势。
Win8的应用商店提供了大量的应用程序和游戏,用户可以方便地下载和安装。
同时,Win8还优化了触屏操作和多任务处理的功能,提升了用户体验。
三、性能Win7和Win8的性能也有着一定的差异。
Win7的系统要求较低,对硬件要求不高,在老旧设备上运行良好。
而Win8则更适合搭载高配置硬件的设备,以发挥其更强的性能。
因此,如果你的电脑配置较低,Win7可能是更好的选择;但如果你追求更流畅的操作体验和更快的速度,那么Win8可能更适合你。
总结:通过本文的比较和应用指南,我们可以得出以下结论:选择Win7还是Win8取决于个人需求和偏好。
如果你更喜欢传统风格的界面,对触摸屏操作不感兴趣,或者你的电脑配置较低,那么Win7是一个不错的选择。
而如果你喜欢时尚、先进的界面,追求更好的应用和游戏资源,或者你的设备配置较高,那么Win8可能更适合你。
最重要的是,无论选择哪个操作系统,我们都要根据自己的需求合理使用,并不断学习和适应新的技术和功能。
菜科网系统致力于解决 Windows 系统重装解决方案,提供高效、安全、免费的系统重装服务。
win7和win8哪个更适合你?
软件支持 在线重装、U盘制作、自定义重装 等多种模式。
简介:在现代社会中,计算机已经成为了人们工作、学习和娱乐的必备工具。
作为最流行的操作系统之一,Windows系列(以下简称“Win”)一直备受关注。
但是,作为用户如何选择适合自己的版本呢?今天我们将从不同的角度出发,分析一下Win7和Win8,究竟哪个更适合你。
工具原料:系统版本:Windows 7和Windows 8品牌型号:Lenovo ThinkPad T480s软件版本:Microsoft Office 2016、Adobe Photoshop CC 2019一、Win7还是Win8?Win7和Win8作为两个代表性的操作系统版本,它们各有优势。
首先,Win7具有更好的兼容性和稳定性,适用于需要长时间稳定运行的电脑。
例如,一家设计公司使用Win7来运行Adobe Photoshop CC 2019,可以获得更流畅的使用体验。
而对于一家电子商务公司来说,他们可能更倾向于选择Win8,因为Win8在触摸屏和触摸操作方面具有很大的优势,这对于快速浏览商品和执行快速操作来说非常方便。
二、用户界面比较Win7和Win8在用户界面上也有很大的差异。
Win7继承了Windows XP中经典的开始菜单风格,用户界面比较稳定且熟悉。
相比之下,Win8采用了全新的“Metro”界面,重点突出了图形化和触摸操作的特性。
对于习惯了传统界面的用户来说,Win7可能更容易上手,而Win8则适合那些对新技术和新界面保持开放心态的用户。
三、性能对比在性能方面,Win7和Win8也有着一定的差异。
Win7相对来说,要求较低的硬件配置,能够在较老的电脑上运行得更加流畅。
而Win8则更加注重对新型硬件的支持,更适合用在高端配置的电脑上。
在使用体验上,Win8相较于Win7更加流畅,响应速度更快。
总结:综上所述,选择Win7还是Win8取决于你的个人需求和喜好。
如果你注重兼容性和稳定性,同时对传统界面较为熟悉,那么Win7可能更适合你。
而如果你对新技术和新界面有探索的欲望,并且拥有一台高配置的电脑,那么Win8可能会给你带来更好的使用体验。
最重要的是,根据自己的实际情况来选择合适的操作系统,才能最大化地发挥计算机的作用。
标签: 注意:本站所刊载的文章均为学习交流之用,请勿用于商业用途。
对于商业使用,请联系各自版权所有者,否则法律问题自行承担。
Win7系统升级指南:全面解析升级步骤与要点 Win7系统损坏修复教程:详细步骤助你快速解决问题 简介:在现代社会中,计算机已经成为了人们工作、学习和娱乐的必备工具。
作为最流行的操作系统之一,Windows系列(以下简称“Win”)一直备受关注。
但是,作为用户如何选择适合自己的版本呢?今天我们将从不同的角度出发,分析一下Win7和Win8,究竟哪个更适合你。
工具原料:系统版本:Windows 7和Windows 8品牌型号:Lenovo ThinkPad T480s软件版本:Microsoft Office 2016、Adobe Photoshop CC 2019一、Win7还是Win8?Win7和Win8作为两个代表性的操作系统版本,它们各有优势。
首先,Win7具有更好的兼容性和稳定性,适用于需要长时间稳定运行的电脑。
例如,一家设计公司使用Win7来运行Adobe Photoshop CC 2019,可以获得更流畅的使用体验。
而对于一家电子商务公司来说,他们可能更倾向于选择Win8,因为Win8在触摸屏和触摸操作方面具有很大的优势,这对于快速浏览商品和执行快速操作来说非常方便。
二、用户界面比较Win7和Win8在用户界面上也有很大的差异。
Win7继承了Windows XP中经典的开始菜单风格,用户界面比较稳定且熟悉。
相比之下,Win8采用了全新的“Metro”界面,重点突出了图形化和触摸操作的特性。
对于习惯了传统界面的用户来说,Win7可能更容易上手,而Win8则适合那些对新技术和新界面保持开放心态的用户。
三、性能对比在性能方面,Win7和Win8也有着一定的差异。
Win7相对来说,要求较低的硬件配置,能够在较老的电脑上运行得更加流畅。
而Win8则更加注重对新型硬件的支持,更适合用在高端配置的电脑上。
在使用体验上,Win8相较于Win7更加流畅,响应速度更快。
总结:综上所述,选择Win7还是Win8取决于你的个人需求和喜好。
如果你注重兼容性和稳定性,同时对传统界面较为熟悉,那么Win7可能更适合你。
而如果你对新技术和新界面有探索的欲望,并且拥有一台高配置的电脑,那么Win8可能会给你带来更好的使用体验。
最重要的是,根据自己的实际情况来选择合适的操作系统,才能最大化地发挥计算机的作用。
菜科网系统致力于解决 Windows 系统重装解决方案,提供高效、安全、免费的系统重装服务。