Nuget-自定义模板的创建与使用 (3)

 

<?xml version="1.0" encoding="utf-8"?> <package xmlns="http://schemas.microsoft.com/packaging/2010/07/nuspec.xsd"> <metadata> <id>DynamicTplDemo</id> <version>1.0.0</version> <authors>Bai Li</authors> <description>动态模板包</description> <copyright>Copyright ©2021 Contoso Corporation</copyright> <packageTypes> <packageType /> </packageTypes> </metadata> <files> <file src="http://www.likecs.com/src\**" target="src" exclude="**\bin\**;**\obj\**" /> </files> </package>

 

官方文档中关于节点的说明定义很清晰,可前往查阅。需要注意的是files>file节点,这里用来排除模板中各子项目下的bin和obj文件夹。

打包模板,并生成.nupkg文件

上面准备工作完成,开始进行打包。这里通过tools文件夹下的nuget.exe工具,将指定的模板项目打包称.nupkg文件,并输出到上面定义好的packages文件夹下。

切换到指定的项目文件夹下,执行如下命令:

 

E:\SourceCode\MyPractices\MyTestTemplates\tools\nuget.exe pack DynamicTplDemo.nuspec -OutputDirectory E:\SourceCode\MyPractices\MyTestTemplates\packages

 

当提示如下内容,则表示生成包成功。

Nuget-自定义模板的创建与使用

在packages文件夹下,可以看到已生成包:

Nuget-自定义模板的创建与使用

发布包

想要在不同机器上方便使用包,是需要将包发布到nuget包服务器上,通常有两种方式:Nuget.org、私有源。

发布到Nuget.org

参考文档:https://docs.microsoft.com/zh-cn/nuget/nuget-org/publish-a-package

发布到私有源

参考文档:https://docs.microsoft.com/zh-cn/nuget/hosting-packages/overview

私有源有Azure、Nuget.Server、开源项目。

这里使用Baget开源项目(https://github.com/loic-sharma/BaGet),通过Docker部署,直接使用公共镜像:

 

#拉取镜像 docker pull loicsharma/baget #运行容器 docker run --rm --name nuget-server -p 50557:80 loicsharma/baget:latest

 

注:此处使用公共镜像部署仅为了简单展示包的上传和安装步骤。

Baget部署后,使用nuget.exe上传包:

参考文档:https://docs.microsoft.com/zh-cn/nuget/reference/cli-reference/cli-ref-push

 

nuget.exe push E:\SourceCode\MyPractices\MyTestTemplates\packages\DynamicTplDemo.1.0.0.nupkg -src :50557/v3/index.json

 

上传成功后,可以在Baget服务器上看到上传的包。

Nuget-自定义模板的创建与使用

使用包 添加源

将上面自建的Nuget源添加到Nuget配置中,以便后面使用,添加源命令:

 

dotnet nuget add source :50557/v3/index.json -n MyBaget

 

安装包

 

dotnet new --install DynamicTplDemo::1.0.0

 

安装成功后,可以看到该包:

Nuget-自定义模板的创建与使用

使用包

包的使用,跟上面“创建动态模板”的“使用模板创建项目”方式一致:

 

dotnet new DynamicTplDemo -n MyDynamicTpl -o E:\SourceCode\MyPractices\MyTestTemplates\codes\MyDynamicTpl -S MSSQL

 

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wsxygs.html