用vs开发程序时,通常使用中间件或者第三方组件时需要用Nuget下载包后注入方可使用,这也是.NET Core的特征之一。那么我们可以使用自己生产的Nuget包吗?当然可以的。开发过程中可以把不经常修改的内库项目打包成Nuget包,然后在本地导入;也可以自己搭建一个Nuget服务器,专门负责本地Nuget和第三方Nuget的导入。本文主要讲述如何生成本地Nuget包和如何导入本地的Nuget包。.
一、创建本地的Nuget包
新建一个类库项目,项目里创建一个类和一个方法,便于我们测试。创建完成后点击这个项目右键,选择打包,在输出提示生产成功后代表打包成功,路径通常在bin目录下的Release(打包为了达到性能最优,建议使用Release生成)。
如果有nupkg文件,证明打包成功。
在这个类里我们创建如下方法,便于导入后调用,如下:
public class TestTest
{
public string GetNuget()
{
return "Hello Nuget!";
}
}
二、配置添加本地包
4、添加本地包
点击程序包源的+号,新增一个包源;选中新增包源后点击下面三个点,弹出选择文件夹框后选择前面新建的“Nugets”包文件夹,点击确定。这里可以修改这个本地包源的名称,便于区分其他包。
5、搜索包
跟搜索第三方包类似可以搜索到自己创建的包。
6、使用自己创建的nuget包
新建一个Mvc项目,引用刚才创建的包后注册,在控制器中用构造函数注入,最后展示出前面类里方法返回的字符串,代码如下。
//1、在Program.cs中单例注册
builder.Services.AddSingleton<TestTest>();
//2、在控制器中构造函数注入
private readonly TestTest test;
public HomeController(TestTest test)
{
this.test = test;
}
//3、在控制器中使用
public IActionResult Index()
{
return Content(test.GetNuget());
}
输出结果如下,成功打印出导入的nuget包中方法返回的字符串:
三、结语
本文主要讲述如何生成本地Nuget包和如何导入本地的Nuget包,打包过程中注意你的版本兼容性问题,最好选择跟你项目相同的版本,.Net6类库生成后默认是NETStandard2.0。希望本文对你有所帮助,同时欢迎留言讨论。