Directory.Build.props 2.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  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. <PackageReadmeFile>README.md</PackageReadmeFile>
  20. </PropertyGroup>
  21. <!-- 导入共享的版本检测逻辑 -->
  22. <PropertyGroup>
  23. <VersionsDir>$([System.IO.Path]::Combine($(MSBuildThisFileDirectory), 'versions'))</VersionsDir>
  24. </PropertyGroup>
  25. <Import Project="buildTools/Version.props" />
  26. <!-- 动态选择 README 文件:优先使用版本文件,内容不足5字符时回退到项目 README -->
  27. <Target Name="SelectReadmeFile" BeforeTargets="_GetPackageFiles" DependsOnTargets="DetectVersionFromFiles">
  28. <!-- 检查版本文件内容长度 -->
  29. <CheckFileLength FilePath="$(DetectedVersionFile)" MinLength="5">
  30. <Output TaskParameter="IsLongEnough" PropertyName="UseVersionFileAsReadme" />
  31. </CheckFileLength>
  32. <!-- 如果版本文件内容足够长,使用版本文件 -->
  33. <ItemGroup Condition="'$(UseVersionFileAsReadme)' == 'true'">
  34. <_PackageFiles Include="$(DetectedVersionFile)">
  35. <PackagePath>README.md</PackagePath>
  36. <BuildAction>None</BuildAction>
  37. </_PackageFiles>
  38. </ItemGroup>
  39. <!-- 否则使用项目目录下的 README.md -->
  40. <ItemGroup Condition="'$(UseVersionFileAsReadme)' != 'true'">
  41. <_PackageFiles Include="README.md">
  42. <PackagePath>README.md</PackagePath>
  43. <BuildAction>None</BuildAction>
  44. </_PackageFiles>
  45. </ItemGroup>
  46. <Message Text="README 来源: $(DetectedVersionFile) (版本文件)" Importance="high" Condition="'$(UseVersionFileAsReadme)' == 'true'" />
  47. <Message Text="README 来源: README.md (项目目录)" Importance="high" Condition="'$(UseVersionFileAsReadme)' != 'true'" />
  48. </Target>
  49. </Project>