- 1、本文档共12页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
创建你的NuGet软件包
这篇文章 ,与许多其他教程和指南在互联网上。 任何提及 project.json的都过时了,这需要一个。csproj而不是 vs 。
简介
我被拉入. NET core/.NET 标准的世界,在 FluentFTP 库中工作。 我需要把它移植到. NET 内核,所以我决定学习这个技术。 毕竟它只是. NET 框架的一个缩减版本,它有多难? 这是一个非常困难的经验,在找到没有关于主题的教程之后,我决定写自己的。 虽然我认为这不是最好的方法,但它是一种适合我的方法。
我的库构建在. NET 框架 4.0上,是移植的理想候选对象,因为它不使用WindowsForms或者任何UI控件,这在. NET 内核中目前是不可用的。 你只能使用 核心数据类型。集合。文件 I/O 。XML 。图像。计时器。进程。等等 几乎所有你需要构建功能控制台应用程序或者后端库所需的。
你可能知道. NET 内核是. NET 框架的开源版本,由微软构建。 它将整个. NET 框架拆分为软件包,这些托管在Nuget上。 每个软件包都需要依赖软件包,使你的库不会膨胀。
移植这个相对简单的库非常困难,我决定将自己的经验和技巧写在帮助开发人员将它的技术移植到. NET 核心上,从而帮助开发人员。 你可以浏览 Awesome. NET Core 项目中当前可用的.NET 核心库。 在. NET 内核中移植了一个伟大的库,不要忘了将它添加到 List 中,并通过分叉和提交提交一个 PR 。
本文写得像教程,目的是帮助你自己的项目,但是我将使用FluentFTP项目中的屏幕截图和示例文件。
审阅
对. NET 核心的快速回顾及其与. NET 框架相比的优势。
· 如果我想让你的应用程序在 Windows 上运行,因为你有一个服务器端应用程序,你可以使用完整的.NET 框架运行它。 不过,使用. NET 内核,你现在可以在Unix上运行它,这是一个免费的操作系统。
· 在整个. NET 框架中,模块的模块被裁剪成小块并上传到Nuget上。 所以你的应用程序必须指定它的依赖包,它又有自己的依赖关系。 当你从nuget安装应用程序时,它只下载它需要的软件包,没有更多。
· 它的在线,意味着你应用的每个系统都有一个互联网连接。 如果需要脱机功能,可以以在编译时随应用程序包装依赖项,但是不能访问基于tftp的更新。
要求
· 你需要 Visual Studio 2017 Community Edition,或者更好地编译你的库的.NET 核心版本。 它必须安装在互联网连接电脑和免费永久一旦你登录。 你可以使用 vs 2015,但它已经过时且不推荐使用。
· 你还需要为编译库的.NET 框架版本提供英镑 Visual Studio 或者 2015. 你可以在一台机器上同时安装 2012和 2017,就像我所做的。
· 由于所有步骤都是在一台 Windows 机器上构建的,因此需要使用批处理文件和类似的方法,因此需要花费英镑或者更高的。 我仍然使用 Windows 7,所以推荐使用。 由于它需要 vs 代码,因为它需要完全不同的项目配置( 那是最困难的部分) 来完全不同的开源 IDE 。
· 你需要在 C:ToolsNugetnuget.exe处安装 ,以创建你的NuGet软件包
· 您 需要 安装 NuGet软件包资源管理器 查看最终nuget包(. nupkg ) 并确保所有元数据和库都已经成功地被拉入。 如果你不是为nuget发布,请跳过这里。
目标
在本教程中,我们将为. NET 框架和库的.NET 核心版本使用单个代码库,使用 #if指令对特定平台进行条件编译。 ,vs 2017项目,我在一个项目中使用两个项目,一个 vs 2012项目,一个. NET 内核的vs 2017项目是很困难的。 两个项目都引用相同的代码库,允许共享代码和。 不需要维护两个基本代码,并且手动同步代码。
我们还将目标是用相同的两个项目和单一代码库为多个框架版本添加目标。 以后,你总是可以使用相同的方法添加更多版本。
PlatformBinaries FolderSolution
.NET 2.0
NET20
FluentFTP_NET_VS2012.sln
.NET 4.0
net40
FluentFTP_NET_VS2012.sln
.NET 4.5
net45
FluentFTP_NET_VS2012.sln
.NET 核心 5.0
dnxcore50
FluentFTP_Core_VS2017.sln
.NET 标准 1.6
netstandard1.6
FluentFTP_Core_VS2017.sln
最后,我们将创建一个的NuGet软件包来发布我们的库,我将覆盖创建一个有效的steps
文档评论(0)