千家信息网

迁移#SNMP到.NET Core平台的心得是什么

发表于:2026-11-04 作者:千家信息网编辑
千家信息网最后更新 2026年11月04日,迁移#SNMP到.NET Core平台的心得是什么,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。准备阶段首先,Visua
千家信息网最后更新 2026年11月04日迁移#SNMP到.NET Core平台的心得是什么

迁移#SNMP到.NET Core平台的心得是什么,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。

准备阶段

首先,Visual Studio 2015是必要的开发工具。虽然它已经包含了.NET Core的原始测试版,这里还是推荐下载 RC1 安装包,

http://get.asp.net

请下载 ASP.NET 5 RC 那个版本。下面都是假设在 Windows 系统上。

执行安装程序,它会进一步下载更多的部件。等到安装完成,就可以进行 .NET Core RC1程序的开发。

下面让我们进一步升级到 RC1 Update 1这个升级版本:

  1. 打开 Visual Studio Command Prompt。

  2. 执行"dnvm upgrade"命令。

  3. 再执行"dnvm list"命令。

如果一切正常,那么这时候输出应该是这样的,

C:\Program Files (x86)\Microsoft Visual Studio 14.0>dnvm list

Active Version Runtime Architecture Location Alias
-- --- --- ---- --- --
1.0.0-rc1-final clr x86 C:\Users\lextm\.dnx\runtimes
1.0.0-rc1-update1 clr x64 C:\Users\lextm\.dnx\runtimes
* 1.0.0-rc1-update1 clr x86 C:\Users\lextm\.dnx\runtimes default
1.0.0-rc1-update1 coreclr x64 C:\Users\lextm\.dnx\runtimes
1.0.0-rc1-update1 coreclr x86 C:\Users\lextm\.dnx\runtimes

开始迁移

下面可以开启 Visual Studio 2015,并且创建一个类型是 Class Library (Package) 的新工程(Visual Studio 2015 Update 1似乎把这个工程类型改名了,研究中)。这种工程的文件后缀是.xproj。这种工程的编译结果会是一个 NuGet 包。

在往里面加入新东西之前,我们先来研究一下 project.json 文件。

需要注意的是 project.json 是全新的管理依赖项的方式,它既代替了原来管理 NuGet 包的 packages.config,也替代了原来 .csproj 工程文件中管理引用的部分。

一个范例是 #SNMP Library 现在使用的 project.json 文件,

https://github.com/lextm/sharpsnmplib/blob/netcore5/SharpSnmpLib/project.json

从中我们可以看到,既有用来描述 NuGet 包的各种元数据信息,也包含依赖项。

其中比较主要的部分是它指明了两个平台别名(moniker),一个是 .NET Framework 4.5.1(net451),另一个是 .NET Platform Standard 5.4(dotnet5.4)。

前者有一个基本的引用列表,所以不太需要指明具体库的应用,但是比较特殊的是 System.Runtime.Serialization,所以它是唯一需要写明的一个引用。

而后者怎是一个新的别名,用来标识一个包含完整 API 清单的 .NET 平台。凡是支持这个平台标准5.4版本的 CLR 实现(不限 .NET Framework,Mono 或者 Xamarin),都可以使用我们编译之后的 NuGet 包。关于平台标准的细节可以阅读下面的文档,

https://github.com/dotnet/corefx/blob/master/Documentation/architecture/net-platform-standard.md

不过它已经更新 RC2 的版本,所以版本号已经改为从1.0计算了。

面向平台标准开发的一大困扰就是所有的引用都需要手工指明。而这些引用也最后来自于对应的 NuGet 包。那么怎么寻找这些包和它们的对应版本呢?

简单来说,步骤就是将要迁移的项目代码手工拷贝到新工程里,然后编译。凡是找不到的类型,我们使用微软临时发布的一个查询网站

http://packagesearch.azurewebsites.net

来查询包含它的 NuGet 包和版本。这是一个有点费时间的过程,因为

  • 有些类型是 RC1不存在的,而且可能也不会出现在 RC2等后续版本。于是需要换变通的方式。

  • 有些类型在后续版本中会有,那么需要等待。

  • 有些类型仅仅出现在桌面版本的 .NET Framework 中于是需要条件编译。

因为仅仅作为一个测试,所以我在迁移 #SNMP Library 过程中就删去了很多代码。另外由于 Socket 类型的同步方法都被移除,我也不得不将很多 #SNMP Library 的代码改写为 async/await 方式。等微软正式发布 RC2,我会考虑再迁移一部分代码过去。

到此,只要编译通过,那么初步的迁移工作也就结束了。

写在最后

还有其他值得注意之处:

  • 和 project.json 对应,Visual Studio 会维护一个 project.lock.json 文件。这个文件详细记录了依赖项展开的情况,了解它的结构有利于调试一些依赖项问题。但是不要将它签入到版本控制。

  • .xproj 工程不像 .csproj 那样需要明确指示工程包含的源文件,而是默认将同一文件夹下面所有源文件引入。因此有可能迁移过程中需要调整下工程文件的组织。

  • 暂时没有特别方便的单元测试集成。后面应该会有。

  • dotnet5.x 是个临时的别名,后面都会改成 netstandard1.x。

上面仅仅谈到了迁移过程中最为重要的步骤。一些工具,如 dnvm 由于 RC2 起会被 dotnet 工具取代,所以都没有详细介绍。现在这个阶段,还是浅尝辄止比较经济实惠。

看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注行业资讯频道,感谢您对的支持。

版本 工程 文件 类型 平台 编译 代码 过程 别名 工具 方式 标准 进一 开发 测试 管理 命令 就是 手工 更多 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 互联网科技工作委员会 互联网科技公司的优势 腾讯科技 互联网女皇 佰商互联网科技有限公司 佩信高科技互联网 隆华科技工业互联网 互联网科技实习生岗位职责 字节跳动和互联网科技 广州新华互联网科技学校电竞方面 佛山市翊博互联网络科技有限公司 互联网在线教育科技创业 工业互联网等科技实现智能化赋能 互联网科技圈年度人物 上海钢联属于互联网科技股吗 宇信科技在杭州互联网排第几 同城互联网络科技 科技互联网经济论坛 北京品多多互联网科技有限公司 长沙易易互联网科技有限公司 科技美学互联网 艺术 互联网科技名片 中国互联网科技工作委员会毛军 北京禾田雨橡互联网科技 赫美联合互联网科技 互联网科技大会 互联网科技股有哪些 湖南一路畅行互联网科技 富国互联网金融科技混合基金 抖集互联网科技技术咨询 科技发展第三阶段互联网时代
0