Directory.Build.props 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  1. <Project>
  2. <PropertyGroup>
  3. <!-- 支持 .NET 8/10 LTS 版本 -->
  4. <TargetFrameworks>net8.0;net10.0</TargetFrameworks>
  5. <!-- 公共设置 -->
  6. <ImplicitUsings>enable</ImplicitUsings>
  7. <Nullable>enable</Nullable>
  8. <LangVersion>latest</LangVersion>
  9. <!-- 生成文档 -->
  10. <GenerateDocumentationFile>true</GenerateDocumentationFile>
  11. <NoWarn>$(NoWarn);CS1591</NoWarn>
  12. <!-- 抑制 XML 注释警告 -->
  13. <NoWarn>$(NoWarn);CS1591;CS1570;CS1574</NoWarn>
  14. <!-- 抑制 TFM 不支持警告 -->
  15. <SuppressTfmSupportBuildWarnings>true</SuppressTfmSupportBuildWarnings>
  16. </PropertyGroup>
  17. <!-- Microsoft.Extensions.* 版本:根据目标框架选择匹配版本 -->
  18. <PropertyGroup Condition="'$(TargetFramework)' == 'net8.0'">
  19. <MicrosoftExtensionsVersion>8.0.0</MicrosoftExtensionsVersion>
  20. <MicrosoftAspNetCoreVersion>8.0.0</MicrosoftAspNetCoreVersion>
  21. </PropertyGroup>
  22. <PropertyGroup Condition="'$(TargetFramework)' == 'net10.0'">
  23. <MicrosoftExtensionsVersion>10.0.1</MicrosoftExtensionsVersion>
  24. <MicrosoftAspNetCoreVersion>10.0.1</MicrosoftAspNetCoreVersion>
  25. </PropertyGroup>
  26. <!-- Apq.Cfg 特定的 NuGet 包元数据 -->
  27. <PropertyGroup>
  28. <PackageReadmeFile>README.md</PackageReadmeFile>
  29. </PropertyGroup>
  30. <!-- 导入共享的版本检测逻辑 -->
  31. <PropertyGroup>
  32. <VersionsDir>$([System.IO.Path]::Combine($(MSBuildThisFileDirectory), 'versions'))</VersionsDir>
  33. </PropertyGroup>
  34. <Import Project="buildTools/Version.props" />
  35. <!--
  36. README 默认策略(修改 ReadmeStrategy 的值可改变默认策略):
  37. - Static:始终使用项目目录下的 README.md
  38. - VersionFile:优先使用版本文件,内容不足5字符时回退到项目 README
  39. -->
  40. <PropertyGroup>
  41. <ReadmeStrategy Condition="'$(ReadmeStrategy)' == ''">Static</ReadmeStrategy>
  42. </PropertyGroup>
  43. <!-- Static 策略:始终使用项目目录下的 README.md -->
  44. <ItemGroup Condition="'$(ReadmeStrategy)' == 'Static'">
  45. <None Include="README.md" Pack="true" PackagePath="\" />
  46. </ItemGroup>
  47. <!-- VersionFile 策略:优先使用版本文件,内容不足5字符时回退到项目 README -->
  48. <Target Name="SelectReadmeFile" BeforeTargets="_GetPackageFiles" DependsOnTargets="DetectVersionFromFiles"
  49. Condition="'$(ReadmeStrategy)' == 'VersionFile'">
  50. <CheckFileLength FilePath="$(DetectedVersionFile)" MinLength="5">
  51. <Output TaskParameter="IsLongEnough" PropertyName="UseVersionFileAsReadme" />
  52. </CheckFileLength>
  53. <ItemGroup Condition="'$(UseVersionFileAsReadme)' == 'true'">
  54. <_PackageFiles Include="$(DetectedVersionFile)">
  55. <PackagePath>README.md</PackagePath>
  56. <BuildAction>None</BuildAction>
  57. </_PackageFiles>
  58. </ItemGroup>
  59. <ItemGroup Condition="'$(UseVersionFileAsReadme)' != 'true'">
  60. <_PackageFiles Include="README.md">
  61. <PackagePath>README.md</PackagePath>
  62. <BuildAction>None</BuildAction>
  63. </_PackageFiles>
  64. </ItemGroup>
  65. <Message Text="README 来源: $(DetectedVersionFile) (版本文件)" Importance="high" Condition="'$(UseVersionFileAsReadme)' == 'true'" />
  66. <Message Text="README 来源: README.md (项目目录)" Importance="high" Condition="'$(UseVersionFileAsReadme)' != 'true'" />
  67. </Target>
  68. </Project>