如题,把一套代码.NET代码。编译成多平台,多版本dll文件、

项目结构如图(Cvs文件读写开源组件 https://github.com/JoshClose/CsvHelper

如上图。项目工程 CsvHelper 是类库的主项目工程。

CsvHelper20,CsvHelper35,CsvHelperPcl 是不同.NET版本对应的项目工程、

类库项目工程、CsvHelper20,CsvHelper35,CsvHelperPcl 使用的是 CvsHelper 的代码文件(直接通过添加 项目链接文件+条件编译符号 实现的)。

下面自己动手来操作一遍咯。感觉被我说得云里糊涂的。o(︶︿︶)o ~

第一步(0x01),创建项目工程:

新建5个项目工程、如下图、

OceanHo.Common (工程代码都写在这个项目里面,.NET版本 4.0)

OceanHo.CommonNET20 (OceanHo.Common针对.NET2.0的版本,.NET版本 2.0)

OceanHo.CommonNET20 (OceanHo.Common针对.NET4.0的版本,.NET版本 4.0)

OceanHo.Common.ExampleDo(测试项目的代码都写在这里,.NET版本 4.0,需要引用OceanHo.Common)

OceanHo.Common.ExampleDoNET20(测试项目的代码都写在这里,.NET版本 2.0,需要引用OceanHo.CommonNET20)

OceanHo.Common.ExampleDoNET40(测试项目的代码都写在这里,.NET版本 4.0,需要引用OceanHo.CommonNET40)

第二步(0x02),添加 条件编译符号:

设置项目 OceanHo.CommonNET20 的 条件编译符号为 NET20,OceanHo.CommonNET40 条件编译符 设置为 NET40

注:net20 与 net40 自定义,非必须叫这个名称哈、设置完成后,如下图。

第三步(0x03),新建CSharp源码文件:

在OceanHo.Common添加ObjectExtension.cs并加上如图所示的代码(不急哈,代码最后面会丢到github上的)

第四步(0x04),添加源代码文件链接:

OceanHo.CommonNET20,OceanHo.CommonNET40 两个项目中添加 OceanHo.Common 

Properties\AssemblyInfo.cs

ObjectExtension.cs

两个文件的链接引用,操作选中 OceanHo.CommonNET20 ,鼠标右键 -》 添加 -》 现有项

操作完成后,将看到如下图所示。

哦,对鸟、~~~ OceanHo.CommonNET40项目也同上方法进行操作。o(∩_∩)o ~

第五步(0x05),让.NET 2.0 支持静态方法扩展:

在 OceanHo.CommonNET20 中添加 ExtensionAttribute.cs

 using System;
using System.Collections.Generic;
using System.Text; /****** Care here namespace *************/
namespace System.Runtime.CompilerServices
{
/// <summary>
/// 为 .NET 2.0 定义一个扩展方法的支持标记类,在不引用升级 .NET 到 3.5 与引用.NET 3.5 程序集的情况下可以支持静态方法扩展
/// </summary>
[AttributeUsage( AttributeTargets.Assembly | AttributeTargets.Class | AttributeTargets.Method )]
public sealed class ExtensionAttribute : Attribute
{
}
}

第六步(0x06),写个控制台测试程序看看效果:

第七步(0x07),瞧瞧添加 文件链接 OceanHo.CommonNET20.csproj的东东:

可以看到,实际上,添加的 链接 代码文件,是在 Compile 节点下加了一个 Link 节点链接到这个项目中的咯~

代码为方便自己继续学习,已经放到 github 上咯。

https://github.com/oceanho/OceanHo.MultiVerCompileTests

Visual Studio 实现 编写一套.net代码,同时编译到 多个平台,多版本的操作笔记的更多相关文章

  1. 使用Visual Studio Code编写和激活ABAP代码 (上)

    猪年春节后的第一篇,Jerry祝各位猪年大吉! 2019年的六分之一马上就快过完了,不知道大家在新的一年是否给自己定了新的小目标呢?这里Jerry先预祝大家到2019年年底的时候,在年初制定的小目标都 ...

  2. 用Visual Studio 2015 编写驱动之前一定要注意的问题!!!

    如果你确定要使用Visual Studio 2015 编写驱动,那么在你安装Visual Studio 2015 和WDK之前,一定一定要注意一件事情,那就是确保SDK和WDK版本保持一致,切记切记! ...

  3. 在ubuntu下使用visual studio code编写python

    感觉有了visual studio code之后,不管编写什么语言的代码都可以,简单安装对应的语言插件即可. 这不轮到了最近比较热的python语言,蹭着AI的热度,python语言成为了工程师们又一 ...

  4. Visual Studio Entity Framework (EF) 生成SQL 代码 性能查询

    Visual Studio Entity Framework (EF) 生成SQL 代码 性能查询     SQL 中,有SQL Server Profiler可以用来查询性能以及查看外部调用的SQL ...

  5. Mac上使用Visual Studio Code开发/调试.NET Core代码

    Mac上使用Visual Studio Code开发/调试.NET Core代码 .Net Core 1.0终于发布了,Core的一大卖点就是跨平台.这个跨平台不只是跨平台运行,而且可以跨平台开发.今 ...

  6. Visual Studio使用正则表达式快速统计总共代码行数

    原文:Visual Studio使用正则表达式快速统计总共代码行数 按CTRL+SHIFT+F,勾上支持正则表达式,然后输入搜索内容: <span style="font-family ...

  7. Visual Studio中使用Macros插件给代码添加注释、时间和以及自动脚本

    title: Visual Studio中使用Macros插件给代码添加注释.时间和以及自动脚本 date: 2020-09-11 sidebarDepth: 2 tags: 代码 Visual st ...

  8. Visual Studio 2012出现“无法访问T-SQL组件和安装了不兼容伯 DacFx版本”的解决办法

    参考:Visual Studio 2012出现“无法访问T-SQL组件和安装了不兼容伯 DacFx版本”的解决办法 Vs2012的下载地址: https://msdn.microsoft.com/en ...

  9. Rust初步(二):使用Visual Studio Code编写Rust程序(猜猜看游戏)

    我是照着下面这篇帮助文档,完成了第一个完整的Rust程序: 猜猜看 游戏 http://kaisery.gitbooks.io/rust-book-chinese/content/content/3. ...

随机推荐

  1. StrangeIoc框架学习----在项目中实战

    最近,因为公司的项目一直在研究StrangeIoc框架,小有所得,略作记录. StrangeIoc是一款基于MVCS的一种框架,是对MVC思想的扩展,是专门针对unity开发的一款框架,非常好用. 一 ...

  2. 初学python之urllib

    urllib.request urlopen()urllib.urlopen(url, data, proxies) :创建一个表示远程url的类文件对象,然后像本地文件一样操作这个类文件对象来获取远 ...

  3. 关于web前端开发学习的顺序

    学习web前端开发该怎么学,按照什么顺序学习,这是很多新手朋友会遇到的问题.下面简单的说一下.由于在国内大学课程里面,几乎没有前端开发这门课程,无非就是一些网页设计之类的课程,但那些课程无论是老师讲还 ...

  4. mysql的配置文件my.cnf

    调整MySQL运行参数,修改/etc/my.cnf文件调整mysql运行参数重启MySQL后生效,在MySQL4版本以后,一部分内部变量可以在MySQL运行时设置,不过重启MySQL就失效了. mys ...

  5. 简单的androidStudio 添加Jar包

    感谢http://blog.csdn.net/ta893115871/article/details/46955791博主的文章, 1新建一个空项目 2在项目下添加一个新的moudle 3在该moud ...

  6. NET Core1.0之CentOS平台开发控制台程序DEMO

    微软发布NET Core1.0正式版本,并支持了red hat linux平台,所以在CentOS平台,通过编辑器玩下控制器程序. 一.安装.NET Core SDK 先下载SDK并放在指定目录. s ...

  7. jquery template模版引擎

    jTemplates http://jtemplates.tpython.com/ jquery-template  https://github.com/codepb/jquery-template ...

  8. SQL日期格式,转自will哥

    我之前一直認為 SQL Server 針對日期處理的函數不夠多(如果跟 MySQL 比較),尤其是處理日期欄位轉字串的時候,常常因為要輸出特定的格式而懊惱不已,常常一不小心就寫了一長串,很不易閱讀. ...

  9. Java类额应用

    基本数据类型包装类  Integer    Character  其他的都是将首字母大写;   包装类和基本类型之间的转换:  Integer   int Integer i = new  Integ ...

  10. oracle 数据库学习3 --oracle 数据库中常使用的函数

    1.字符函数: ASCII(X) -->返回X字符的ASCII码 concat(x,y)-->将y连接到X上输出 select concat(first_name,last_name) f ...