Files
AtomUI/build/AtomUI.Repository.props
T
chinboy 3fe9f6c130 build(release): 增加包 API 与包布局破坏性变更门禁
发布准备新增两层机械化门禁,观测产物事实而不依赖提交的 `!` 标记,
避免破坏性变更未经迁移文档直接发布。

- 包 API 校验:build/PackageValidation.props 在传入基线版本时启用
  ApiCompat,比对 lib/ 公共 API 与跨 TFM 一致性。
- 包布局校验:verify-package-layout.ps1 比对 lib/ TFM 集合、tools/、
  build/、buildTransitive/。ApiCompat 看不到这些路径,6.1.9 的
  tools/netstandard2.0 迁移 net10.0 正属此类。
- 两者由 BuildNuGetPackages.ps1 的 -PackageValidationBaselineVersion
  驱动,发布 workflow 新增同名输入。
- 有意变更分别通过 PackageValidationSuppressions 与
  package-layout-allowlist.json 认可,未命中的条目会导致失败。
- 门禁为条件导入,Debug/日常构建不读取该文件,编译性能无影响。
- 同步更新发布准备规范、构建契约测试与架构文档。
2026-09-11 21:56:06 +08:00

58 lines
4.6 KiB
XML

<Project>
<Import Project="$(MSBuildThisFileDirectory)Versions.props" />
<Import Project="$(MSBuildThisFileDirectory)ProjectDefaults.props" />
<Import Project="$(MSBuildThisFileDirectory)PackageMetadata.props" />
<Import Project="$(MSBuildThisFileDirectory)OutputPaths.props" />
<!-- Imported only for validation runs. In ordinary Debug/Release development builds the
property below is unset, so this file is not read at all and adds no evaluation cost to
the inner development loop. -->
<Import Project="$(MSBuildThisFileDirectory)PackageValidation.props"
Condition="'$(AtomUIPackageValidationBaselineVersion)' != '' or '$(EnablePackageValidation)' == 'true'" />
<PropertyGroup>
<AtomUIRepositoryBuild>true</AtomUIRepositoryBuild>
<AtomUIBuildTasksAssembly Condition="'$(AtomUIBuildTasksAssembly)' == ''">$(OutputPathWithoutFramework)/net10.0/AtomUI.Build.Tasks.dll</AtomUIBuildTasksAssembly>
<AtomUILinkedPublishGeneratorAssembly Condition="'$(AtomUILinkedPublishGeneratorAssembly)' == ''">$(OutputPathWithoutFramework)/netstandard2.0/AtomUI.Generator.LinkedPublish.dll</AtomUILinkedPublishGeneratorAssembly>
</PropertyGroup>
<ItemGroup>
<AtomUINuGetBuildAsset Include="$(MSBuildThisFileDirectory)AtomUI.Generator.props;
$(MSBuildThisFileDirectory)AtomUI.Generator.targets;
$(MSBuildThisFileDirectory)AtomUI.LinkedRegistration.props;
$(MSBuildThisFileDirectory)AtomUI.LinkedRegistration.targets;
$(MSBuildThisFileDirectory)AtomUI.LinkedRegistration.SidecarConsumer.targets;
$(MSBuildThisFileDirectory)AtomUI.Localization.props;
$(MSBuildThisFileDirectory)AtomUI.Localization.targets;
$(MSBuildThisFileDirectory)AtomUI.ThemeAssets.targets;
$(MSBuildThisFileDirectory)AtomUI.Build.Tasks.Process.cs">
<PackagePath>buildTransitive/%(Filename)%(Extension)</PackagePath>
</AtomUINuGetBuildAsset>
<AtomUIGeneratorToolAsset Include="$(OutputPathWithoutFramework)/netstandard2.0/AtomUI.Generator.dll;
$(OutputPathWithoutFramework)/netstandard2.0/AtomUI.Generator.LinkedPublish.dll;
$(OutputPathWithoutFramework)/netstandard2.0/System.Reflection.Metadata.dll;
$(OutputPathWithoutFramework)/netstandard2.0/System.Collections.Immutable.dll;
$(OutputPathWithoutFramework)/netstandard2.0/System.Memory.dll;
$(OutputPathWithoutFramework)/netstandard2.0/System.Buffers.dll;
$(OutputPathWithoutFramework)/netstandard2.0/System.Numerics.Vectors.dll;
$(OutputPathWithoutFramework)/netstandard2.0/System.Runtime.CompilerServices.Unsafe.dll">
<PackagePath>tools/netstandard2.0/%(Filename)%(Extension)</PackagePath>
</AtomUIGeneratorToolAsset>
<AtomUIGeneratorToolAsset Include="$(OutputPathWithoutFramework)/net10.0/AtomUI.Build.Tasks.dll;
$(OutputPathWithoutFramework)/net10.0/AtomUI.Build.Tasks.deps.json;
$(OutputPathWithoutFramework)/net10.0/AtomUI.Build.Tasks.runtimeconfig.json;
$(OutputPathWithoutFramework)/net10.0/Microsoft.Build.Framework.dll">
<PackagePath>tools/net10.0/%(Filename)%(Extension)</PackagePath>
</AtomUIGeneratorToolAsset>
</ItemGroup>
<ItemGroup Condition="('$(AtomUILinkedPublish)' == 'true' or '$(PublishTrimmed)' == 'true' or '$(PublishAot)' == 'true' or '$(RunAOTCompilation)' == 'true' or '$(AtomUIEmitLinkedManifest)' == 'true' or '$(AtomUIRegistrationStrict)' == 'true') and '$(MSBuildProjectName)' != 'AtomUI.Generator' and '$(MSBuildProjectName)' != 'AtomUI.Generator.LinkedPublish' and '$(MSBuildProjectName)' != 'AtomUI.Build.Tasks'">
<ProjectReference Include="$(MSBuildThisFileDirectory)../src/AtomUI.Generator.LinkedPublish/AtomUI.Generator.LinkedPublish.csproj"
OutputItemType="Analyzer"
ReferenceOutputAssembly="false"
PrivateAssets="all" />
</ItemGroup>
<Import Project="$(MSBuildThisFileDirectory)AtomUI.Generator.props" />
</Project>