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

总结:
??host定义项目类型 , 方便使用在host基础上定义web、webapi计算型布尔变量 。
??项目开发中本地启动文件(launchSettings.json)中会经常用环境变量,如:应用标识 。
??模板文件中关键字替换依赖环境变量的replaces参数,需要注意保证replaces的值与文件被替换的值一样,如:http端口、应用标识 。
??根据项目类型,排除web\webapi对应的项目以及单元测试项目文件 。
??如果需要区分当前使用模板场景(visual studio 可视化窗口、命令行窗口),有不同执行行为,可以使用HostIdentifier变量 。如:解决文件.sln生成 。
??
2.2、template\net6.0\.template.config\ide.host.json{  "$schema": "http://json.schemastore.org/vs-2017.3.host",  "order": 200,  "icon": "ide/sampletemplate.png",  "symbolInfo": [    {      "id": "host",      "isVisible": true    },    {      "id": "appUK",      "isVisible": true    },    //隐藏http端口,自动生成    {      "id": "kestrelHttpPort",      "isVisible": false    }  ]}2.3、template\net6.0\.template.config\dotnetcli.host.json{  "$schema": "http://json.schemastore.org/dotnetcli.host",  "symbolInfo": {    "host": {      "isHidden": false    },    "appUK": {      "isHidden": false    },    //隐藏http端口 , 自动生成    "kestrelHttpPort": {      "isHidden": true    }  }}三、解决方案文件设置Microsoft Visual Studio Solution File, Format Version 12.00# Visual Studio Version 17VisualStudioVersion = 17.1.32414.318MinimumVisualStudioVersion = 10.0.40219.1<!--#if(web)-->Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Web", "src\Web\Web.csproj", "{F075845E-43F4-466D-B731-904782BD9047}"EndProjectProject("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "WebUnitTest", "test\WebUnitTest\WebUnitTest.csproj", "{8A522BE9-0EE5-4C54-861B-394452A6744E}"EndProject<!--#endif--><!--#if(webapi)-->Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "WebApi", "src\WebApi\WebApi.csproj", "{5A6E6B9F-F8FA-4152-95B4-860F8CCAE3C3}"EndProjectProject("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "WebApiUnitTest", "test\WebApiUnitTest\WebApiUnitTest.csproj", "{5EAD3BC3-554B-4058-9A9D-A91DF5F2DE1C}"EndProject<!--#endif-->Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Shared", "src\Shared\Shared.csproj", "{30B12CFC-11E1-4E1C-B484-F708CEBD080A}"EndProjectProject("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Domain.Interfaces", "src\Domain.Interfaces\Domain.Interfaces.csproj", "{810CD02B-0E13-4123-A84F-FBD4F4F1CD3A}"EndProjectProject("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Domain.Service", "src\Domain.Service\Domain.Service.csproj", "{3D2A540B-E773-44FA-82CF-14F3393D41B2}"EndProjectProject("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Infrastructure.Interfaces", "src\Infrastructure.Interfaces\Infrastructure.Interfaces.csproj", "{F4C1EFA8-824C-4985-A50D-BD1171ED1CFC}"EndProjectProject("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Infrastructure.Implements", "src\Infrastructure.Implements\Infrastructure.Implements.csproj", "{41C74675-6234-41F2-9B8A-4D06159D2A81}"EndProjectGlobal GlobalSection(SolutionConfigurationPlatforms) = preSolutionDebug|Any CPU = Debug|Any CPURelease|Any CPU = Release|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution<!--#if(web)-->{F075845E-43F4-466D-B731-904782BD9047}.Debug|Any CPU.ActiveCfg = Debug|Any CPU{F075845E-43F4-466D-B731-904782BD9047}.Debug|Any CPU.Build.0 = Debug|Any CPU{F075845E-43F4-466D-B731-904782BD9047}.Release|Any CPU.ActiveCfg = Release|Any CPU{F075845E-43F4-466D-B731-904782BD9047}.Release|Any CPU.Build.0 = Release|Any CPU{8A522BE9-0EE5-4C54-861B-394452A6744E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU{8A522BE9-0EE5-4C54-861B-394452A6744E}.Debug|Any CPU.Build.0 = Debug|Any CPU{8A522BE9-0EE5-4C54-861B-394452A6744E}.Release|Any CPU.ActiveCfg = Release|Any CPU{8A522BE9-0EE5-4C54-861B-394452A6744E}.Release|Any CPU.Build.0 = Release|Any CPU<!--#endif--><!--#if(webapi)-->{5A6E6B9F-F8FA-4152-95B4-860F8CCAE3C3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU{5A6E6B9F-F8FA-4152-95B4-860F8CCAE3C3}.Debug|Any CPU.Build.0 = Debug|Any CPU{5A6E6B9F-F8FA-4152-95B4-860F8CCAE3C3}.Release|Any CPU.ActiveCfg = Release|Any CPU{5A6E6B9F-F8FA-4152-95B4-860F8CCAE3C3}.Release|Any CPU.Build.0 = Release|Any CPU{5EAD3BC3-554B-4058-9A9D-A91DF5F2DE1C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU{5EAD3BC3-554B-4058-9A9D-A91DF5F2DE1C}.Debug|Any CPU.Build.0 = Debug|Any CPU{5EAD3BC3-554B-4058-9A9D-A91DF5F2DE1C}.Release|Any CPU.ActiveCfg = Release|Any CPU{5EAD3BC3-554B-4058-9A9D-A91DF5F2DE1C}.Release|Any CPU.Build.0 = Release|Any CPU<!--#endif-->{30B12CFC-11E1-4E1C-B484-F708CEBD080A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU{30B12CFC-11E1-4E1C-B484-F708CEBD080A}.Debug|Any CPU.Build.0 = Debug|Any CPU{30B12CFC-11E1-4E1C-B484-F708CEBD080A}.Release|Any CPU.ActiveCfg = Release|Any CPU{30B12CFC-11E1-4E1C-B484-F708CEBD080A}.Release|Any CPU.Build.0 = Release|Any CPU{810CD02B-0E13-4123-A84F-FBD4F4F1CD3A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU{810CD02B-0E13-4123-A84F-FBD4F4F1CD3A}.Debug|Any CPU.Build.0 = Debug|Any CPU{810CD02B-0E13-4123-A84F-FBD4F4F1CD3A}.Release|Any CPU.ActiveCfg = Release|Any CPU{810CD02B-0E13-4123-A84F-FBD4F4F1CD3A}.Release|Any CPU.Build.0 = Release|Any CPU{3D2A540B-E773-44FA-82CF-14F3393D41B2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU{3D2A540B-E773-44FA-82CF-14F3393D41B2}.Debug|Any CPU.Build.0 = Debug|Any CPU{3D2A540B-E773-44FA-82CF-14F3393D41B2}.Release|Any CPU.ActiveCfg = Release|Any CPU{3D2A540B-E773-44FA-82CF-14F3393D41B2}.Release|Any CPU.Build.0 = Release|Any CPU{F4C1EFA8-824C-4985-A50D-BD1171ED1CFC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU{F4C1EFA8-824C-4985-A50D-BD1171ED1CFC}.Debug|Any CPU.Build.0 = Debug|Any CPU{F4C1EFA8-824C-4985-A50D-BD1171ED1CFC}.Release|Any CPU.ActiveCfg = Release|Any CPU{F4C1EFA8-824C-4985-A50D-BD1171ED1CFC}.Release|Any CPU.Build.0 = Release|Any CPU{41C74675-6234-41F2-9B8A-4D06159D2A81}.Debug|Any CPU.ActiveCfg = Debug|Any CPU{41C74675-6234-41F2-9B8A-4D06159D2A81}.Debug|Any CPU.Build.0 = Debug|Any CPU{41C74675-6234-41F2-9B8A-4D06159D2A81}.Release|Any CPU.ActiveCfg = Release|Any CPU{41C74675-6234-41F2-9B8A-4D06159D2A81}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolutionHideSolutionNode = FALSE EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolutionSolutionGuid = {2A1729E7-0ED9-48D5-84EB-897B28B15D78} EndGlobalSectionEndGlobal

推荐阅读