<?xml version="1.0" encoding="utf-8" standalone="yes"?><urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" xmlns:xhtml="http://www.w3.org/1999/xhtml"><url><loc>https://blog.pluscode.cn/series/%E4%BB%8E%E9%9B%B6%E5%AE%9E%E7%8E%B0%E5%A2%9E%E9%87%8F%E6%BA%90%E7%94%9F%E6%88%90%E5%99%A8/</loc><lastmod>2026-03-22T15:30:00+08:00</lastmod></url><url><loc>https://blog.pluscode.cn/posts/2026-03-22-what-is-an-incremental-generator/</loc><lastmod>2026-03-22T09:00:00+08:00</lastmod></url><url><loc>https://blog.pluscode.cn/posts/2026-03-22-templates-are-about-cost-control-not-scaffolding/</loc><lastmod>2026-03-22T09:00:00+08:00</lastmod></url><url><loc>https://blog.pluscode.cn/posts/2026-03-22-why-additional-files-starts-the-second-stage/</loc><lastmod>2026-03-22T00:30:00+08:00</lastmod></url><url><loc>https://blog.pluscode.cn/posts/2026-03-22-project-structure-for-source-generator/</loc><lastmod>2026-03-22T10:30:00+08:00</lastmod></url><url><loc>https://blog.pluscode.cn/posts/2026-03-22-simple-template-is-for-validation-not-long-term-debt/</loc><lastmod>2026-03-22T09:30:00+08:00</lastmod></url><url><loc>https://blog.pluscode.cn/series/%E9%99%84%E5%8A%A0%E6%96%87%E4%BB%B6%E4%B8%8E%E9%85%8D%E7%BD%AE%E7%94%9F%E6%88%90/</loc><lastmod>2026-03-22T08:30:00+08:00</lastmod></url><url><loc>https://blog.pluscode.cn/posts/2026-03-22-file-metadata-comes-from-msbuild-not-json/</loc><lastmod>2026-03-22T01:30:00+08:00</lastmod></url><url><loc>https://blog.pluscode.cn/series/%E6%A8%A1%E6%9D%BF%E5%B7%A5%E7%A8%8B%E5%8C%96%E4%B8%8E%E8%90%BD%E5%9C%B0/</loc><lastmod>2026-03-22T14:00:00+08:00</lastmod></url><url><loc>https://blog.pluscode.cn/posts/2026-03-22-standard-template-earns-its-value-in-clear-change-locations/</loc><lastmod>2026-03-22T10:00:00+08:00</lastmod></url><url><loc>https://blog.pluscode.cn/posts/2026-03-22-global-defaults-change-the-contract-boundary/</loc><lastmod>2026-03-22T02:30:00+08:00</lastmod></url><url><loc>https://blog.pluscode.cn/posts/2026-03-20-watching-the-project-through-source-generator-lens/</loc><lastmod>2026-03-20T20:00:00+08:00</lastmod></url><url><loc>https://blog.pluscode.cn/posts/2026-03-22-first-tostring-generator/</loc><lastmod>2026-03-22T11:30:00+08:00</lastmod></url><url><loc>https://blog.pluscode.cn/posts/2026-03-22-enterprise-template-is-really-about-delivery-closure/</loc><lastmod>2026-03-22T10:30:00+08:00</lastmod></url><url><loc>https://blog.pluscode.cn/posts/2026-03-22-the-hard-part-is-merging-not-reading/</loc><lastmod>2026-03-22T03:30:00+08:00</lastmod></url><url><loc>https://blog.pluscode.cn/posts/2026-03-22-post-initialization-and-generated-attribute/</loc><lastmod>2026-03-22T15:30:00+08:00</lastmod></url><url><loc>https://blog.pluscode.cn/posts/2026-03-22-rename-and-package-consumer-are-where-rollout-actually-fails/</loc><lastmod>2026-03-22T11:00:00+08:00</lastmod></url><url><loc>https://blog.pluscode.cn/posts/2026-03-22-merge-is-where-config-stops-being-single-file/</loc><lastmod>2026-03-22T04:30:00+08:00</lastmod></url><url><loc>https://blog.pluscode.cn/posts/2026-03-22-projectreference-running-does-not-mean-packagereference-is-deliverable/</loc><lastmod>2026-03-22T11:30:00+08:00</lastmod></url><url><loc>https://blog.pluscode.cn/posts/2026-03-22-grouping-key-decides-how-many-classes-you-get/</loc><lastmod>2026-03-22T05:30:00+08:00</lastmod></url><url><loc>https://blog.pluscode.cn/posts/2026-03-20-entry-point-and-main-pipeline/</loc><lastmod>2026-03-20T18:30:00+08:00</lastmod></url><url><loc>https://blog.pluscode.cn/posts/2026-03-22-target-discovery-with-syntax-provider/</loc><lastmod>2026-03-22T14:00:00+08:00</lastmod></url><url><loc>https://blog.pluscode.cn/posts/2026-03-22-layered-configuration-should-be-designed-before-the-first-rollout/</loc><lastmod>2026-03-22T12:00:00+08:00</lastmod></url><url><loc>https://blog.pluscode.cn/posts/2026-03-22-directory-conventions-change-namespace-identity/</loc><lastmod>2026-03-22T06:30:00+08:00</lastmod></url><url><loc>https://blog.pluscode.cn/posts/2026-03-22-type-model-and-metadata-extraction/</loc><lastmod>2026-03-22T12:30:00+08:00</lastmod></url><url><loc>https://blog.pluscode.cn/posts/2026-03-22-test-bases-should-appear-before-complex-features/</loc><lastmod>2026-03-22T12:30:00+08:00</lastmod></url><url><loc>https://blog.pluscode.cn/posts/2026-03-22-prefix-trimming-keeps-api-clean/</loc><lastmod>2026-03-22T07:30:00+08:00</lastmod></url><url><loc>https://blog.pluscode.cn/posts/2026-03-22-sample-keeps-the-template-alive-tests-keep-it-honest/</loc><lastmod>2026-03-22T13:00:00+08:00</lastmod></url><url><loc>https://blog.pluscode.cn/posts/2026-03-22-explicit-discovery-breaks-the-filename-lockin/</loc><lastmod>2026-03-22T08:30:00+08:00</lastmod></url><url><loc>https://blog.pluscode.cn/posts/2026-03-20-property-selection-and-output-surface/</loc><lastmod>2026-03-20T17:00:00+08:00</lastmod></url><url><loc>https://blog.pluscode.cn/posts/2026-03-22-delivery-scripts-should-be-part-of-the-template-contract/</loc><lastmod>2026-03-22T13:30:00+08:00</lastmod></url><url><loc>https://blog.pluscode.cn/posts/2026-03-21-rendering-generated-tostring/</loc><lastmod>2026-03-21T20:00:00+08:00</lastmod></url><url><loc>https://blog.pluscode.cn/posts/2026-03-22-release-checklists-belong-in-the-template-not-in-memory/</loc><lastmod>2026-03-22T14:00:00+08:00</lastmod></url><url><loc>https://blog.pluscode.cn/posts/2026-03-20-hint-name-and-file-identity/</loc><lastmod>2026-03-20T15:30:00+08:00</lastmod></url><url><loc>https://blog.pluscode.cn/posts/2026-03-21-nullable-generic-and-nested-type-boundaries/</loc><lastmod>2026-03-21T18:30:00+08:00</lastmod></url><url><loc>https://blog.pluscode.cn/posts/2026-03-21-diagnostics-and-generator-contracts/</loc><lastmod>2026-03-21T17:00:00+08:00</lastmod></url><url><loc>https://blog.pluscode.cn/posts/2026-03-21-testing-strategy-for-generators/</loc><lastmod>2026-03-21T15:30:00+08:00</lastmod></url><url><loc>https://blog.pluscode.cn/posts/2026-03-21-debugging-and-generated-files/</loc><lastmod>2026-03-21T14:00:00+08:00</lastmod></url><url><loc>https://blog.pluscode.cn/posts/2026-03-21-next-steps-after-first-generator/</loc><lastmod>2026-03-21T12:30:00+08:00</lastmod></url><url><loc>https://blog.pluscode.cn/posts/2026-03-20-from-mainline-to-additional-files/</loc><lastmod>2026-03-20T14:00:00+08:00</lastmod></url><url><loc>https://blog.pluscode.cn/tags/attribute/</loc><lastmod>2026-03-22T15:30:00+08:00</lastmod></url><url><loc>https://blog.pluscode.cn/categories/</loc><lastmod>2026-03-22T15:30:00+08:00</lastmod></url><url><loc>https://blog.pluscode.cn/tags/postinitialization/</loc><lastmod>2026-03-22T15:30:00+08:00</lastmod></url><url><loc>https://blog.pluscode.cn/tags/roslyn/</loc><lastmod>2026-03-22T15:30:00+08:00</lastmod></url><url><loc>https://blog.pluscode.cn/series/</loc><lastmod>2026-03-22T15:30:00+08:00</lastmod></url><url><loc>https://blog.pluscode.cn/tags/</loc><lastmod>2026-03-22T15:30:00+08:00</lastmod></url><url><loc>https://blog.pluscode.cn/posts/</loc><lastmod>2026-03-22T15:30:00+08:00</lastmod></url><url><loc>https://blog.pluscode.cn/</loc><lastmod>2026-03-22T15:30:00+08:00</lastmod></url><url><loc>https://blog.pluscode.cn/categories/%E6%95%99%E7%A8%8B/</loc><lastmod>2026-03-22T15:30:00+08:00</lastmod></url><url><loc>https://blog.pluscode.cn/categories/%E6%BA%90%E7%94%9F%E6%88%90%E5%99%A8/</loc><lastmod>2026-03-22T15:30:00+08:00</lastmod></url><url><loc>https://blog.pluscode.cn/reading-order/</loc><lastmod>2026-03-22T14:30:00+08:00</lastmod></url><url><loc>https://blog.pluscode.cn/tags/checklist/</loc><lastmod>2026-03-22T14:00:00+08:00</lastmod></url><url><loc>https://blog.pluscode.cn/tags/syntaxprovider/</loc><lastmod>2026-03-22T14:00:00+08:00</lastmod></url><url><loc>https://blog.pluscode.cn/categories/%E4%B8%93%E9%A2%98/</loc><lastmod>2026-03-22T14:00:00+08:00</lastmod></url><url><loc>https://blog.pluscode.cn/tags/%E5%8F%91%E5%B8%83/</loc><lastmod>2026-03-22T14:00:00+08:00</lastmod></url><url><loc>https://blog.pluscode.cn/tags/%E6%A8%A1%E6%9D%BF/</loc><lastmod>2026-03-22T14:00:00+08:00</lastmod></url><url><loc>https://blog.pluscode.cn/tags/%E7%9B%AE%E6%A0%87%E5%8F%91%E7%8E%B0/</loc><lastmod>2026-03-22T14:00:00+08:00</lastmod></url><url><loc>https://blog.pluscode.cn/tags/%E4%BA%A4%E4%BB%98/</loc><lastmod>2026-03-22T13:30:00+08:00</lastmod></url><url><loc>https://blog.pluscode.cn/tags/%E8%84%9A%E6%9C%AC/</loc><lastmod>2026-03-22T13:30:00+08:00</lastmod></url><url><loc>https://blog.pluscode.cn/tags/sample/</loc><lastmod>2026-03-22T13:00:00+08:00</lastmod></url><url><loc>https://blog.pluscode.cn/tags/tests/</loc><lastmod>2026-03-22T13:00:00+08:00</lastmod></url><url><loc>https://blog.pluscode.cn/tags/symbol/</loc><lastmod>2026-03-22T12:30:00+08:00</lastmod></url><url><loc>https://blog.pluscode.cn/tags/%E5%9B%9E%E5%BD%92/</loc><lastmod>2026-03-22T12:30:00+08:00</lastmod></url><url><loc>https://blog.pluscode.cn/tags/%E6%A8%A1%E5%9E%8B%E8%AE%BE%E8%AE%A1/</loc><lastmod>2026-03-22T12:30:00+08:00</lastmod></url><url><loc>https://blog.pluscode.cn/tags/%E6%B5%8B%E8%AF%95/</loc><lastmod>2026-03-22T12:30:00+08:00</lastmod></url><url><loc>https://blog.pluscode.cn/tags/msbuild/</loc><lastmod>2026-03-22T12:00:00+08:00</lastmod></url><url><loc>https://blog.pluscode.cn/tags/%E9%85%8D%E7%BD%AE/</loc><lastmod>2026-03-22T12:00:00+08:00</lastmod></url><url><loc>https://blog.pluscode.cn/tags/generatetostring/</loc><lastmod>2026-03-22T11:30:00+08:00</lastmod></url><url><loc>https://blog.pluscode.cn/tags/incrementalgenerator/</loc><lastmod>2026-03-22T11:30:00+08:00</lastmod></url><url><loc>https://blog.pluscode.cn/tags/nuget/</loc><lastmod>2026-03-22T11:30:00+08:00</lastmod></url><url><loc>https://blog.pluscode.cn/tags/packagereference/</loc><lastmod>2026-03-22T11:30:00+08:00</lastmod></url><url><loc>https://blog.pluscode.cn/tags/projectreference/</loc><lastmod>2026-03-22T11:30:00+08:00</lastmod></url><url><loc>https://blog.pluscode.cn/tags/%E5%85%A5%E9%97%A8/</loc><lastmod>2026-03-22T11:30:00+08:00</lastmod></url><url><loc>https://blog.pluscode.cn/tags/%E6%94%B9%E5%90%8D/</loc><lastmod>2026-03-22T11:00:00+08:00</lastmod></url><url><loc>https://blog.pluscode.cn/tags/enterprise/</loc><lastmod>2026-03-22T10:30:00+08:00</lastmod></url><url><loc>https://blog.pluscode.cn/tags/%E5%B7%A5%E7%A8%8B%E5%8C%96/</loc><lastmod>2026-03-22T10:30:00+08:00</lastmod></url><url><loc>https://blog.pluscode.cn/tags/%E9%A1%B9%E7%9B%AE%E7%BB%93%E6%9E%84/</loc><lastmod>2026-03-22T10:30:00+08:00</lastmod></url><url><loc>https://blog.pluscode.cn/tags/standard/</loc><lastmod>2026-03-22T10:00:00+08:00</lastmod></url><url><loc>https://blog.pluscode.cn/tags/%E8%81%8C%E8%B4%A3%E8%BE%B9%E7%95%8C/</loc><lastmod>2026-03-22T10:00:00+08:00</lastmod></url><url><loc>https://blog.pluscode.cn/tags/simple/</loc><lastmod>2026-03-22T09:30:00+08:00</lastmod></url><url><loc>https://blog.pluscode.cn/tags/%E9%AA%8C%E8%AF%81/</loc><lastmod>2026-03-22T09:30:00+08:00</lastmod></url><url><loc>https://blog.pluscode.cn/tags/%E6%88%90%E6%9C%AC%E6%8E%A7%E5%88%B6/</loc><lastmod>2026-03-22T09:00:00+08:00</lastmod></url><url><loc>https://blog.pluscode.cn/tags/additionalfiles/</loc><lastmod>2026-03-22T08:30:00+08:00</lastmod></url><url><loc>https://blog.pluscode.cn/tags/migration/</loc><lastmod>2026-03-22T08:30:00+08:00</lastmod></url><url><loc>https://blog.pluscode.cn/tags/tutorialsettingsenabled/</loc><lastmod>2026-03-22T08:30:00+08:00</lastmod></url><url><loc>https://blog.pluscode.cn/tags/api/</loc><lastmod>2026-03-22T07:30:00+08:00</lastmod></url><url><loc>https://blog.pluscode.cn/tags/entryprefix/</loc><lastmod>2026-03-22T07:30:00+08:00</lastmod></url><url><loc>https://blog.pluscode.cn/tags/namespace/</loc><lastmod>2026-03-22T06:30:00+08:00</lastmod></url><url><loc>https://blog.pluscode.cn/tags/relativedir/</loc><lastmod>2026-03-22T06:30:00+08:00</lastmod></url><url><loc>https://blog.pluscode.cn/tags/grouping/</loc><lastmod>2026-03-22T05:30:00+08:00</lastmod></url><url><loc>https://blog.pluscode.cn/tags/outputmodel/</loc><lastmod>2026-03-22T05:30:00+08:00</lastmod></url><url><loc>https://blog.pluscode.cn/tags/contracts/</loc><lastmod>2026-03-22T04:30:00+08:00</lastmod></url><url><loc>https://blog.pluscode.cn/tags/mergestrategy/</loc><lastmod>2026-03-22T04:30:00+08:00</lastmod></url><url><loc>https://blog.pluscode.cn/tags/diagnostics/</loc><lastmod>2026-03-22T03:30:00+08:00</lastmod></url><url><loc>https://blog.pluscode.cn/tags/compilervisibleproperty/</loc><lastmod>2026-03-22T02:30:00+08:00</lastmod></url><url><loc>https://blog.pluscode.cn/tags/%E5%A5%91%E7%BA%A6/</loc><lastmod>2026-03-22T02:30:00+08:00</lastmod></url><url><loc>https://blog.pluscode.cn/tags/analyzerconfigoptions/</loc><lastmod>2026-03-22T01:30:00+08:00</lastmod></url><url><loc>https://blog.pluscode.cn/tags/tostring/</loc><lastmod>2026-03-21T20:00:00+08:00</lastmod></url><url><loc>https://blog.pluscode.cn/tags/%E4%BB%A3%E7%A0%81%E7%94%9F%E6%88%90/</loc><lastmod>2026-03-21T20:00:00+08:00</lastmod></url><url><loc>https://blog.pluscode.cn/tags/%E6%B8%B2%E6%9F%93/</loc><lastmod>2026-03-21T20:00:00+08:00</lastmod></url><url><loc>https://blog.pluscode.cn/tags/generics/</loc><lastmod>2026-03-21T18:30:00+08:00</lastmod></url><url><loc>https://blog.pluscode.cn/tags/nestedtypes/</loc><lastmod>2026-03-21T18:30:00+08:00</lastmod></url><url><loc>https://blog.pluscode.cn/tags/nullable/</loc><lastmod>2026-03-21T18:30:00+08:00</lastmod></url><url><loc>https://blog.pluscode.cn/tags/regression/</loc><lastmod>2026-03-21T15:30:00+08:00</lastmod></url><url><loc>https://blog.pluscode.cn/tags/testing/</loc><lastmod>2026-03-21T15:30:00+08:00</lastmod></url><url><loc>https://blog.pluscode.cn/tags/debugging/</loc><lastmod>2026-03-21T14:00:00+08:00</lastmod></url><url><loc>https://blog.pluscode.cn/tags/generatedfiles/</loc><lastmod>2026-03-21T14:00:00+08:00</lastmod></url><url><loc>https://blog.pluscode.cn/tags/%E6%8E%92%E9%9A%9C/</loc><lastmod>2026-03-21T14:00:00+08:00</lastmod></url><url><loc>https://blog.pluscode.cn/tags/nextsteps/</loc><lastmod>2026-03-21T12:30:00+08:00</lastmod></url><url><loc>https://blog.pluscode.cn/tags/templates/</loc><lastmod>2026-03-21T12:30:00+08:00</lastmod></url><url><loc>https://blog.pluscode.cn/tags/initialize/</loc><lastmod>2026-03-20T18:30:00+08:00</lastmod></url><url><loc>https://blog.pluscode.cn/tags/pipeline/</loc><lastmod>2026-03-20T18:30:00+08:00</lastmod></url><url><loc>https://blog.pluscode.cn/tags/design/</loc><lastmod>2026-03-20T17:00:00+08:00</lastmod></url><url><loc>https://blog.pluscode.cn/tags/outputsurface/</loc><lastmod>2026-03-20T17:00:00+08:00</lastmod></url><url><loc>https://blog.pluscode.cn/tags/properties/</loc><lastmod>2026-03-20T17:00:00+08:00</lastmod></url><url><loc>https://blog.pluscode.cn/tags/hintname/</loc><lastmod>2026-03-20T15:30:00+08:00</lastmod></url><url><loc>https://blog.pluscode.cn/tags/%E6%89%A9%E5%B1%95/</loc><lastmod>2026-03-20T14:00:00+08:00</lastmod></url><url><loc>https://blog.pluscode.cn/archive/</loc></url><url><loc>https://blog.pluscode.cn/404.html</loc></url></urlset>