Visual Studio巧用本地的Nuget包

用vs开发程序时,通常使用中间件或者第三方组件时需要用Nuget下载包后注入方可使用,这也是.NET Core的特征之一。那么我们可以使用自己生产的Nuget包吗?当然可以的。开发过程中可以把不经常修改的内库项目打包成Nuget包,然后在本地导入;也可以自己搭建一个Nuget服务器,专门负责本地Nuget和第三方Nuget的导入。本文主要讲述如何生成本地Nuget包和如何导入本地的Nuget包。.

一、创建本地的Nuget包

新建一个类库项目,项目里创建一个类和一个方法,便于我们测试。创建完成后点击这个项目右键,选择打包,在输出提示生产成功后代表打包成功,路径通常在bin目录下的Release(打包为了达到性能最优,建议使用Release生成)。

Visual Studio巧用本地的Nuget包

如果有nupkg文件,证明打包成功。

Visual Studio巧用本地的Nuget包

在这个类里我们创建如下方法,便于导入后调用,如下:

public class TestTest{    public string GetNuget()    {        return "Hello Nuget!";    }}

二、配置添加本地包

 1、现在把刚刚打包好的文件夹(Release)复制到D盘(你也可以自己选择任意文件夹)新建的Nugets文件夹中,并改名Test。
2、打开vs后分别执行如下步骤
    菜单栏-->工具-->Nuget包管理器-->管理解决方案的NuGet程序包

Visual Studio巧用本地的Nuget包

3、点击右侧的设置按钮
如下图所示,也可以在程序包管理器设置中打开。

Visual Studio巧用本地的Nuget包

4、添加本地包

点击程序包源的+号,新增一个包源;选中新增包源后点击下面三个点,弹出选择文件夹框后选择前面新建的“Nugets”包文件夹,点击确定。这里可以修改这个本地包源的名称,便于区分其他包。

Visual Studio巧用本地的Nuget包

5、搜索包

跟搜索第三方包类似可以搜索到自己创建的包。

Visual Studio巧用本地的Nuget包

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包中方法返回的字符串:

Visual Studio巧用本地的Nuget包

三、结语

    本文主要讲述如何生成本地Nuget包和如何导入本地的Nuget包,打包过程中注意你的版本兼容性问题,最好选择跟你项目相同的版本,.Net6类库生成后默认是NETStandard2.0。希望本文对你有所帮助,同时欢迎留言讨论。