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 解決方案多項目模板制作打包總結】

推薦閱讀