首页 > 教程 > 如何将Generator打包成Nuget进行使用

如何将Generator打包成Nuget进行使用

时间:2024-04-11 | 来源: | 阅读:194

话题: T Ato S C get ug

前面我们简单的实现了一个从swagger生成实体类的Generator,在实际使用中,通过nuget包引用使用会更方便,那么本篇文章将介绍如何将Generator打包成Nuget来使用。 打包Nuget 这里我们将GenerateClassFromSwagger.Analysis打包成Nuget进行

前面我们简单的实现了一个从swagger生成实体类的Generator,在实际使用中,通过nuget包引用使用会更方便。那么本篇文章将介绍如何将Generator打包成Nuget来使用。

打包Nuget

这里我们将GenerateClassFromSwagger.Analysis打包成Nuget进行使用。首先需要修改项目文件。

修改项目文件

在PropertyGroup添加 true 表示在编译时生成nuget包,并且 false 表示不将生成器作为库依赖项包括在内。以及添加ItemGroup 包含 将生成器打包到nuget包的分析器目录中。

如果没有第三方依赖的时候,仅这些配置已经足够了。如果需要依赖第三方组件。这里我们依赖了Newtonsoft.Json的包,则需要添加 来指定和Generator的依赖关系。完整修改后的项目配置如下:


...

编译项目

修改项目文件后,编译项目,可以在Debug目录下看到nupkg文件。将文件上传到nuget.org,等待上架成功后可以在NUGET包管理器搜索并安装。

安装Nuget

首先创建一个GenerateClassFromSwaggerNuget的控制台项目,然后添加Nuget依赖。搜索GenerateClassFromSwagger.Analysis即可找到。将我们的swagger.json复制一份过来并设置成AdditionalFiles。修改包属性的OutputItemType和ReferenceOutputAssembly。完整配置如下:


...

编译控制台项目

接下来编译GenerateClassFromSwaggerNuget项目,编译完成后。可以在分析器看到我们生成的文件。跟我们直接引用项目依赖的效果一致。

输出文件

同样,如果我们需要输出文件,在项目文件中添加EmitCompilerGeneratedFiles标签。然后再次编译。可以在obj目录中找到生成的文件列表。如果需要输出到指定目录,则跟上篇文章的方式一致,这里就不赘述了。

结语

本片文章介绍了将Generator打包成Nuget进行使用,可以更方便的在不同项目中使用。

本文代码仓库地址https://github.com/fanslead/Learn-SourceGenerator


湘ICP备2022002427号-10湘公网安备:43070202000427号
© 2013~2019 haote.com 好特网