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

如题,把一套代码.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

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

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

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

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

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

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

时间: 2024-10-10 09:48:03

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

【C++】利用Visual Studio 2008编写C++,Visual Studio 2008的基本使用

现在很多高校还是利用Visual C++ 6.0这一经典版本在教C++,很多人对自己第一个程序的回忆是利用Visual C++ 6.0用C语言写的Helloworld,之后再学习C++的类,不过还是在使用Visual C++ 6.0.于是Visual Studio对Visual C++ 6.0界面的布置改动得比较大,有大部分人如果要写C/C++还是会使用Visual C++ 6.0,甚至苦苦寻找win8下运行Visual C++ 6.0的方法,之后再弄个虚拟机之类的.一直对新式的C语言编写工具讳

用Visual Studio 2010编写Data Url生成工具C#版

声明:本文系本人依照真实经历原创,未经许可,谢绝转载. 此文百度经验版本:如何用Visual Studio 2010打造Data Url生成工具 源码下载:用Visual Studio 2010编写Data Url生成工具C#源码 什么是Data Url呢?Data URI scheme是在RFC2397中定义的,目的是将一些小的数据,直接嵌入到网页中,从而不用再从外部文件载入. 例如: <img src="data:image/png;base64,iVBORw0KGgoAAAANSUh

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

Mac上使用Visual Studio Code开发/调试.NET Core代码 .Net Core 1.0终于发布了,Core的一大卖点就是跨平台.这个跨平台不只是跨平台运行,而且可以跨平台开发.今天抽空研究了下在Mac下如何使用VS Code来开发.NET Core程序,并且调试代码. 1.安装.NET Core 在mac上打开终端: ~$ brew update ~$ brew install openssl ~$ brew link --force openssl 如果不能使用brew命

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

Visual Studio Entity Framework (EF) 生成SQL 代码 性能查询 SQL 中,有SQL Server Profiler可以用来查询性能以及查看外部调用的SQL代码. 但是,EF 连接MYSQL 之后,部分代码没法查询EF生成的SQL 代码,如下代码: db.BaseDept.Remove(basedept)的时候, db.BaseDept打断点,查询到的是select 语句, Remove之后,就变成执行结果了,具体生成的DELETE 的SQL 代码无法查看.

Visual Studio Code 1.44 解决中文代码显示乱码问题(小白图文教程)

现今主流的计算机中文字符编码方案是:GBK和UTF-8. 不同编码方案使用不同的字符集,GBK字符集在中文字符长度和字符数量上存在绝对优势,但对国外字符并不支持.所以,完全面向国内的程序/网页使用的是GBK字符集的GBK编码,而面向国外或面向国内兼国外的程序/网页使用的是Unicode字符集的UTF-8编码. 如果在使用Visual Studio Code 1.44打开源码文件时,出现乱码,那很有可能是因为该文件字符编码是GBK.(没错,Visual Studio Code 1.44默认的字符编

使用Visual Studio 2015 编写 Asp.Net 5 应用遇到的几个坑

从asp.net 5 beta 6 一直到现在的asp.net rc1,一路使用下来,碰到不少坑.陆续记录如下. 一,发布 1,服务器端和客户端都应安装web deploy,版本目前为3.6: 2,服务器端应安装httpplatformhandler,版本目前为1.2,版本1.0不起作用: 3,服务器端开启web management服务: 4,服务器端目录结构应该如下: siteName approot logs wwwroot 然后,在IIS里,将站点目录指向wwwroot.不按这样安排目录

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

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

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

我是照着下面这篇帮助文档,完成了第一个完整的Rust程序: 猜猜看 游戏 http://kaisery.gitbooks.io/rust-book-chinese/content/content/3.1.Guessing%20Game%20%E7%8C%9C%E7%8C%9C%E7%9C%8B.html 我采用的开发工具是Visual Studio Code, 这应该是目前能找到的最"所见即所得"的编辑器了, 尤其对于我们这种重度Windows依赖症患者来说. 不过需要提出的是,我是在

Visual Studio常用小技巧一:代码段+快捷键+插件=效率

用了visual studio 5年多,也该给自己做下备忘录了.每次进新的组换新的电脑,安装自己熟悉的环境又得重新配置,不做些备忘老会忘记一些东西.工具用的好,效率自然翻倍. 1,代码段 在Visual Studio可以自己添加自己喜欢的代码段.visual studio也自带了很多默认的代码段,比如tryf,for等等.我经常需要的就是文件头部的版权说明,还有就是代码注释.添加方法很简单. 微软文档:演练:创建代码段 版权添加方法:Visual Studio 2015为例 找到 C:\Prog