Directory.Build.props 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. <Project>
  2. <PropertyGroup>
  3. <!-- 支持 .NET 6 及以上所有版本 -->
  4. <TargetFrameworks>net6.0;net7.0;net8.0;net9.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. <!-- Apq.Cfg 特定的 NuGet 包元数据 -->
  18. <PropertyGroup>
  19. <Description>统一配置管理库,支持多种配置源</Description>
  20. <PackageTags>configuration;config;json;yaml;toml;ini;xml;redis;database</PackageTags>
  21. <PackageReadmeFile>README.md</PackageReadmeFile>
  22. </PropertyGroup>
  23. <!-- 导入共享的版本检测逻辑 -->
  24. <PropertyGroup>
  25. <VersionsDir>$([System.IO.Path]::Combine($(MSBuildThisFileDirectory), 'versions'))</VersionsDir>
  26. </PropertyGroup>
  27. <Import Project="buildTools/Version.props" />
  28. <!-- 动态选择 README 文件:优先使用版本文件,内容不足5字符时回退到项目 README -->
  29. <Target Name="SelectReadmeFile" BeforeTargets="_GetPackageFiles" DependsOnTargets="DetectVersionFromFiles">
  30. <!-- 检查版本文件内容长度 -->
  31. <CheckFileLength FilePath="$(DetectedVersionFile)" MinLength="5">
  32. <Output TaskParameter="IsLongEnough" PropertyName="UseVersionFileAsReadme" />
  33. </CheckFileLength>
  34. <!-- 如果版本文件内容足够长,使用版本文件 -->
  35. <ItemGroup Condition="'$(UseVersionFileAsReadme)' == 'true'">
  36. <_PackageFiles Include="$(DetectedVersionFile)">
  37. <PackagePath>README.md</PackagePath>
  38. <BuildAction>None</BuildAction>
  39. </_PackageFiles>
  40. </ItemGroup>
  41. <!-- 否则使用项目目录下的 README.md -->
  42. <ItemGroup Condition="'$(UseVersionFileAsReadme)' != 'true'">
  43. <_PackageFiles Include="README.md">
  44. <PackagePath>README.md</PackagePath>
  45. <BuildAction>None</BuildAction>
  46. </_PackageFiles>
  47. </ItemGroup>
  48. <Message Text="README 来源: $(DetectedVersionFile) (版本文件)" Importance="high" Condition="'$(UseVersionFileAsReadme)' == 'true'" />
  49. <Message Text="README 来源: README.md (项目目录)" Importance="high" Condition="'$(UseVersionFileAsReadme)' != 'true'" />
  50. </Target>
  51. <!-- 定义版本变量 -->
  52. <PropertyGroup>
  53. <MicrosoftExtensionsVersion Condition="'$(TargetFramework)' == 'net6.0'">6.0.0</MicrosoftExtensionsVersion>
  54. <MicrosoftExtensionsVersion Condition="'$(TargetFramework)' == 'net7.0'">7.0.0</MicrosoftExtensionsVersion>
  55. <MicrosoftExtensionsVersion Condition="'$(TargetFramework)' == 'net8.0'">8.0.0</MicrosoftExtensionsVersion>
  56. <MicrosoftExtensionsVersion Condition="'$(TargetFramework)' == 'net9.0'">9.0.0</MicrosoftExtensionsVersion>
  57. </PropertyGroup>
  58. </Project>