asp.net core web 解决方案多项目模板制作打包总结( 三 )

总结:
??根据项目类型,保留对应项目引用 。
四、开发测试4.1、打包项目文件<Project Sdk="Microsoft.NET.Sdk"> <PropertyGroup><PackageType>Template</PackageType><PackageVersion>1.0.0.1</PackageVersion><PackageId>sample.template</PackageId><Title>项目模板案例</Title><Authors>flightengine</Authors><Description>项目模板案例</Description><PackageTags>dotnet-new;templates</PackageTags><TargetFramework>net6.0</TargetFramework><IncludeContentInPack>true</IncludeContentInPack><IncludeBuildOutput>false</IncludeBuildOutput><ContentTargetFolders>content</ContentTargetFolders> </PropertyGroup> <ItemGroup><!--PackagePath="content" 保持文件夹\文件的层级结构,否则所有文件都在根目录--><Content Include="..\net6.0\**\*" PackagePath="content" Exclude="..\net6.0\**\bin\**;..\net6.0\**\obj\**;..\net6.0\**\.vs\**" /><Compile Remove="..\net6.0\**\*" /> </ItemGroup></Project>总结:
??PackagePath定义很重要
4.2、编译打包net6.0pack文件夹下执行:
dotnet pack4.3、安装包dotnet new --install sample.template.1.0.0.1.nupkg生成到 net6.0pack\bin\Debug 文件夹
4.4、卸载包dotnet new --uninstall sample.template开发中修改后 , 先执行卸载再安装模板,后vs或者cli测试 。
4.5、安装visual studio:

asp.net core web 解决方案多项目模板制作打包总结

文章插图

asp.net core web 解决方案多项目模板制作打包总结

文章插图
勾选避免生成的代码层次与模板项目定义不一致 。
asp.net core web 解决方案多项目模板制作打包总结

文章插图
4.6、上传执行批处理文件
@echo off:: 解决中文乱码chcp 65001set PackageVersion="1.0.0.1"del .\PublishNuget\*.nupkgdotnet clean .\net6.0pack.csprojdotnet pack .\net6.0pack.csproj -p:PackageVersion=%PackageVersion% -c Release -o .\PublishNuget:: dotnet nuget push  上传包源服务器pause生成到 net6.0pack\PublishNuget 文件夹,可以再结合上传包源服务器命令 。
五、案例源码https://github.com/yinyunpan/template
六、参考6.1、官方或者第三方包参考https://dotnetnew.azurewebsites.net/
搜索包,然后到 https://www.nuget.org/ 下载,分析别人是如何实现的 。
6.2、文档https://github.com/dotnet/templating/wiki/Reference-for-template.json
官网文档各个参数含义 , 有些特殊参数注释\案例写不是很明白 。
https://github.com/sayedihashimi/template-sample
实际开发中遇到各种问题场景的分析及其解决办法,总结的很不错 。
【asp.net core web 解决方案多项目模板制作打包总结】

推荐阅读