.NET Core中创建和使用NuGet包的示例代码
更新时间:2020年04月03日 14:40:01 作者:PowerCoder
这篇文章主要介绍了.NET Core中创建和使用NuGet包的示例代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
在.NET Core的项目中,如果我们要在项目中引用其它DLL文件,不建议直接在项目引用中添加DLL文件(虽然在.NET Core项目中也可以这么做),建议是去直接下载DLL文件所属的NuGet包。这样最大的好处是我们可以将要引用DLL文件的所有依赖文件也一起引入到项目中,这样保证了引用文件的完整性,让其可以正确地运行。
下面我们通过一个.NET Core类库项目和一个ASP.NET Core项目,来演示怎么发布一个NuGet包,并在项目中引用该NuGet包。
首先我们新建一个.NET Core类库项目”Custom.Library.StringUtils”,它包含一个简单的字符串工具类”StringHelper”,用来做简单的字符串处理:
using System;
using Newtonsoft.Json;
namespace Custom.Library.StringUtils
{
/// <summary>
/// 字符串工具类
/// </summary>
public static class StringHelper
{
/// <summary>
/// 将字符串转换为大写
/// </summary>
/// <param name=”text”>字符串</param>
/// <returns>大写的字符串</returns>
public static string GetUpperString(string text)
{
return text.ToUpper();
}
/// <summary>
/// 将一个对象转换为json字符串
/// </summary>
/// <param name=”jsonObject”>对象</param>
/// <returns>json字符串</returns>
public static string ToJson(object jsonObject)
{
return JsonConvert.SerializeObject(jsonObject);
}
}
}
注意为了演示我们这个.NET Core类库项目还引用了其它NuGet包,我们在项目中引用和使用了著名的json处理NuGet包:Newtonsoft.Json
接下来我们要把类库项目”Custom.Library.StringUtils”发布为一个NuGet包。
首先由于我们在项目中写了很多<summary>注释,我们肯定希望其它的.NET Core项目引用了我们的NuGet包后,也能得到这些<summary>的提示,所以我们要在项目属性(Properties)上做一些设置:
在项目的属性上,我们选中Build页面,这里有两个地方要进行设置,首先由于我们是要在发布的NuGet包中生成XMLdocumentation文件,来包含<summary>注释,所以我们要将Configuration下拉框选择为All Configurations,这样我们可以在发布(Release)时也生成XMLdocumentation文件,而不仅仅是在调试(Debug)时才生成。然后我们还要确保XML documentation file这个复选框是勾上的,这样当我们的.NET Core类库项目发布后才会生成对应的XML documentation文件:
其次每个NuGet包其实都有版本号,我们可以在Package页面,通过Package version来设置当前NuGet包的版本号为1.0.0,如下所示:
然后我们就可以发布我们的.NET Core类库项目”Custom.Library.StringUtils”为NuGet包了,在项目上点击发布(Publish):
在弹出的配置窗口中选择一个发布目录,这里我们选择为本地计算机目录”C:\\Local nuget repository”,这个目录也会作为我们后面本地NuGet包管理器的source,实际上我们还可以选择一台远程计算机的共享目录(例如\\\\192.168.1.105\\Remote nuget packages这种网络共享目录)作为NuGet包的source目录,这样如果我们的开发团队人员是在一个局域网中,就可以让每个开发人员的Visual Studio从局域网的共享目录中获取需要的NuGet包了。
点击发布(Publish)后,我们可以在目录”C:\\Local nuget repository”下看到,类库项目生成的NuGet文件就已经存在了:
注意生成的NuGet文件名中是包含版本号的,例如现在如果我们在项目属性(Properties)中的Package页面上,将Package version改为2.0.0,如下所示:
然后再发布.NET Core类库项目,我们可以看到在发布目录”C:\\Local nuget repository”下会再生成一个NuGet文件,这次版本号是2.0.0:
接下来我们就要在另外一个ASP.NET Core项目中来引用我们创建的NuGet包了,为此,我们新建一个ASP.NET Core项目”AspNetCore3000Message”。
首先我们要配置Visual Studio中寻找NuGet包的source,在Visual Studio中选择Tools > NuGet Package Manager > Package Manager Settings
然后在弹出窗口中选中Package Sources页面,然后点击加号新建一个NuGet包source,名称(Name)为”Local nuget package”,路径(Source)为我们前面.NET Core类库项目的发布目录”C:\\Local nuget repository”,如下所示:
点击OK按钮后,我们就将一个本地目录设置为了Visual Studio中NuGet包管理器的source了,就像前面所说我们还可以将一台远程计算机的共享目录作为source,这样开发团队人员的Visual Studio都可以从该共享目录中获取NuGet包了。
现在我们在ASP.NET Core项目”AspNetCore3000Message”中,打开NuGet包管理器:
然后,我们将右上角的Package source下拉框选择为All,接着在搜索框中输入我们前面发布的.NET Core类库项目名”Custom.Library.StringUtils”,就可以找到我们发布的NuGet包了,由于我们前面发布了两个版本到发布目录”C:\\Local nuget repository”,所以这里显示NuGet包的版本也有两个”1.0.0″和”2.0.0″,另外由于我们在.NET Core类库项目”Custom.Library.StringUtils”中引用了Newtonsoft.Json这个NuGet包,所以我们这里看到在Dependencies下面显示我们的NuGet包还依赖于Newtonsoft.Json,这样在安装我们的NuGet包Custom.Library.StringUtils时,也会下载和安装Newtonsoft.Json这个NuGet包,保证了所有依赖的DLL文件都被引用到了ASP.NET Core项目”AspNetCore3000Message”中:
这里我们选择安装”2.0.0″版本:
之后我们就可以在ASP.NET Core项目中使用.NET Core类库项目中的StringHelper类了,并且可以看到<summary>注释是成功显示的:
参考文献:
How to include XML documentation file in NuGet package built from a project file?
到此这篇关于.NET Core中创建和使用NuGet包的示例代码的文章就介绍到这了,更多相关.NET Core 创建和使用NuGet包内容请搜索华域联盟以前的文章或继续浏览下面的相关文章希望大家以后多多支持华域联盟!
您可能感兴趣的文章:ASP.NET MVC学习之NuGet在VS中的运用浅谈
.NET
Core
NuGet
包
相关文章
ASP.NET在底层类库中获取Session C#类中获取Session本文介绍一些在类库中获取Session、Page、Resposne、Request的方法和步骤,方便初学者使用。 2016-03-03
实现基于事件通知的.Net套接字实现基于事件通知的.Net套接字… 2006-09-09
先装VS再装IIS时出错的解决方法如果先安装了VS再安装IIS,一般都会出错,不能正常使用,原因是什么呢?我查了下资料,收集下,供有需要的兄弟们看下 2009-12-12
基于Asp.Net MVC4 Bundle捆绑压缩技术的介绍本篇文章,小编将为大家介绍,Asp.Net MVC4 Bundle捆绑压缩技术,有需要的朋友可以参考一下
2013-04-04
JWT+Log4net配置与使用详解这篇文章主要介绍了JWT+Log4net配置与使用详解,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧 2018-07-07
合并网页中的多个script引用实现思路及代码为了更好的进行封装,每个实现不同功能的js代码应该有自己的js文件,这样如果一个网页中引用了多个js文件会很难管理,所以就出现了合并js这以说,感兴趣的朋友不妨参考下本文希望对你有所帮助 2013-02-02
CheckBox为CheckBoxList实现全选或全取消选择(js代码实现)在管理商品后台是,由于CheckBoxList的选择太多,用户需要一个全选或全取消的功能,这样操作起来会提高效率同时可以减少误点等,本文将教大家如何实现,有需要的朋友可以参考下,望本文对你有所帮助 2013-01-01
asp.net中使用repeater和PageDataSource搭配实现分页代码asp.net中使用repeater和PageDataSource搭配实现分页代码,需要的朋友可以参考下 2013-04-04
Sqlite 常用函数封装提高Codeeer的效率以下是频繁用到的Sqlite函数,内容格式相对固定,封装一下有助于提高开发效率^_^至少提高Codeeer的效率了 2012-12-12
.NET图像界面按钮的clicked事件浅谈 在.NET图像界面开发中最常见的一个事件大概就是按钮的clicked事件了,当点击图形界面的按钮时,就会调用一个与这个事件相关的方法对这个事件进行响应,做一些相关操作。 2013-04-04
最新评论

评论(0)