<Project>
<!-- 集中管理 Microsoft 包版本 -->
<PropertyGroup Label="Microsoft Package Versions">
<!-- 共享版本号 -->
<MicrosoftExtensionsVersion>11.0.0-rc.2.26504.105</MicrosoftExtensionsVersion>
<MicrosoftAspNetCoreLegacyVersion>2.3.13</MicrosoftAspNetCoreLegacyVersion>
<MicrosoftIdentityModelVersion>8.23.0</MicrosoftIdentityModelVersion>
<!-- ASP.NET Core 相关 -->
<MicrosoftAspNetCoreAuthenticationJwtBearerVersion>$(MicrosoftExtensionsVersion)</MicrosoftAspNetCoreAuthenticationJwtBearerVersion>
<MicrosoftAspNetCoreAuthenticationOpenIdConnectVersion>$(MicrosoftExtensionsVersion)</MicrosoftAspNetCoreAuthenticationOpenIdConnectVersion>
<MicrosoftAspNetCoreDataProtectionVersion>$(MicrosoftExtensionsVersion)</MicrosoftAspNetCoreDataProtectionVersion>
<MicrosoftAspNetCoreDataProtectionStackExchangeRedisVersion>$(MicrosoftExtensionsVersion)</MicrosoftAspNetCoreDataProtectionStackExchangeRedisVersion>
<MicrosoftAspNetCoreDiagnosticsVersion>$(MicrosoftAspNetCoreLegacyVersion)</MicrosoftAspNetCoreDiagnosticsVersion>
<MicrosoftAspNetCoreHostingVersion>$(MicrosoftAspNetCoreLegacyVersion)</MicrosoftAspNetCoreHostingVersion>
<MicrosoftAspNetCoreHostingAbstractionsVersion>$(MicrosoftAspNetCoreLegacyVersion)</MicrosoftAspNetCoreHostingAbstractionsVersion>
<MicrosoftAspNetCoreHttpAbstractionsVersion>$(MicrosoftAspNetCoreLegacyVersion)</MicrosoftAspNetCoreHttpAbstractionsVersion>
<MicrosoftAspNetCoreMvcVersion>$(MicrosoftAspNetCoreLegacyVersion)</MicrosoftAspNetCoreMvcVersion>
<MicrosoftAspNetCoreMvcDataAnnotationsVersion>$(MicrosoftAspNetCoreLegacyVersion)</MicrosoftAspNetCoreMvcDataAnnotationsVersion>
<MicrosoftAspNetCoreMvcRazorRuntimeCompilationVersion>$(MicrosoftExtensionsVersion)</MicrosoftAspNetCoreMvcRazorRuntimeCompilationVersion>
<MicrosoftAspNetCoreOpenApiVersion>$(MicrosoftExtensionsVersion)</MicrosoftAspNetCoreOpenApiVersion>
<MicrosoftAspNetCoreSignalRClientVersion>$(MicrosoftExtensionsVersion)</MicrosoftAspNetCoreSignalRClientVersion>
<MicrosoftAspNetCoreSignalRStackExchangeRedisVersion>$(MicrosoftExtensionsVersion)</MicrosoftAspNetCoreSignalRStackExchangeRedisVersion>
<MicrosoftAspNetCoreStaticFilesVersion>$(MicrosoftAspNetCoreLegacyVersion)</MicrosoftAspNetCoreStaticFilesVersion>
<!-- Extensions 相关 -->
<MicrosoftExtensionsCachingAbstractionsVersion>$(MicrosoftExtensionsVersion)</MicrosoftExtensionsCachingAbstractionsVersion>
<MicrosoftExtensionsCachingMemoryVersion>$(MicrosoftExtensionsVersion)</MicrosoftExtensionsCachingMemoryVersion>
<MicrosoftExtensionsCachingStackExchangeRedisVersion>$(MicrosoftExtensionsVersion)</MicrosoftExtensionsCachingStackExchangeRedisVersion>
<MicrosoftExtensionsConfigurationFileExtensionsVersion>$(MicrosoftExtensionsVersion)</MicrosoftExtensionsConfigurationFileExtensionsVersion>
<MicrosoftExtensionsConfigurationJsonVersion>$(MicrosoftExtensionsVersion)</MicrosoftExtensionsConfigurationJsonVersion>
<MicrosoftExtensionsDependencyInjectionAbstractionsVersion>$(MicrosoftExtensionsVersion)</MicrosoftExtensionsDependencyInjectionAbstractionsVersion>
<MicrosoftExtensionsFileProvidersEmbeddedVersion>$(MicrosoftExtensionsVersion)</MicrosoftExtensionsFileProvidersEmbeddedVersion>
<MicrosoftExtensionsHostingAbstractionsVersion>$(MicrosoftExtensionsVersion)</MicrosoftExtensionsHostingAbstractionsVersion>
<MicrosoftExtensionsHttpVersion>$(MicrosoftExtensionsVersion)</MicrosoftExtensionsHttpVersion>
<MicrosoftExtensionsLoggingVersion>$(MicrosoftExtensionsVersion)</MicrosoftExtensionsLoggingVersion>
<MicrosoftExtensionsLoggingAbstractionsVersion>$(MicrosoftExtensionsVersion)</MicrosoftExtensionsLoggingAbstractionsVersion>
<MicrosoftExtensionsLoggingConfigurationVersion>$(MicrosoftExtensionsVersion)</MicrosoftExtensionsLoggingConfigurationVersion>
<MicrosoftExtensionsLoggingConsoleVersion>$(MicrosoftExtensionsVersion)</MicrosoftExtensionsLoggingConsoleVersion>
<MicrosoftExtensionsOptionsVersion>$(MicrosoftExtensionsVersion)</MicrosoftExtensionsOptionsVersion>
<MicrosoftExtensionsOptionsConfigurationExtensionsVersion>$(MicrosoftExtensionsVersion)</MicrosoftExtensionsOptionsConfigurationExtensionsVersion>
<!-- IdentityModel 相关 -->
<MicrosoftIdentityModelProtocolsOpenIdConnectVersion>$(MicrosoftIdentityModelVersion)</MicrosoftIdentityModelProtocolsOpenIdConnectVersion>
<!-- System 相关 -->
<SystemIdentityModelTokensJwtVersion>$(MicrosoftIdentityModelVersion)</SystemIdentityModelTokensJwtVersion>
<SystemServiceModelSyndicationVersion>$(MicrosoftExtensionsVersion)</SystemServiceModelSyndicationVersion>
<!-- 其他 Microsoft 包 -->
<MicrosoftIORecyclableMemoryStreamVersion>3.0.1</MicrosoftIORecyclableMemoryStreamVersion>
<MicrosoftNETTestSdkVersion>18.3.0</MicrosoftNETTestSdkVersion>
</PropertyGroup>
<!-- MCP 包版本管理 -->
<PropertyGroup Label="ModelContextProtocol Package Versions">
<ModelContextProtocolVersion>2.2.0</ModelContextProtocolVersion>
<ModelContextProtocolCoreVersion>$(ModelContextProtocolVersion)</ModelContextProtocolCoreVersion>
<ModelContextProtocolAspNetCoreVersion>$(ModelContextProtocolVersion)</ModelContextProtocolAspNetCoreVersion>
</PropertyGroup>
<!-- OpenIddict 包版本管理 -->
<PropertyGroup Label="OpenIddict Package Versions">
<!-- OpenIddict 共享版本号 -->
<OpenIddictVersion>7.7.2</OpenIddictVersion>
<!-- OpenIddict 相关包 -->
<OpenIddictAbstractionsVersion>$(OpenIddictVersion)</OpenIddictAbstractionsVersion>
<OpenIddictClientAspNetCoreVersion>$(OpenIddictVersion)</OpenIddictClientAspNetCoreVersion>
<OpenIddictServerAspNetCoreVersion>$(OpenIddictVersion)</OpenIddictServerAspNetCoreVersion>
<OpenIddictValidationAspNetCoreVersion>$(OpenIddictVersion)</OpenIddictValidationAspNetCoreVersion>
</PropertyGroup>
<!--
架构约束:集中声明各项目禁止引用的项目,由下方 ValidateForbiddenProjectReferences 在编译期强制。
Include 填被禁止的项目名(不含 .csproj),Reason 会出现在报错信息里。
新增约束只需在此追加一条 ForbiddenProjectReference。
-->
<ItemGroup Label="Architecture Constraints">
<ForbiddenProjectReference
Condition="'$(MSBuildProjectName)' == 'Dpz.Core.Service.Mediator'"
Include="Dpz.Core.Service"
Reason="Dpz.Core.Service 反向引用 Mediator,直接依赖会形成循环依赖"
/>
<ForbiddenProjectReference
Condition="'$(MSBuildProjectName)' == 'Dpz.Core.Service.Mediator'"
Include="Dpz.Core.Service.ObjectStorage"
Reason="Mediator 只做数据交互,对象存储这类外部能力由 Service 层聚合,需要时以委托或已完成的数据传入 request"
/>
</ItemGroup>
<Target
Name="ValidateForbiddenProjectReferences"
BeforeTargets="ResolveProjectReferences"
Condition="'@(ForbiddenProjectReference)' != ''"
>
<ItemGroup>
<_ReferencedProjectName Include="@(ProjectReference->'%(Filename)')" />
<_AllowedForbiddenReference
Include="@(ForbiddenProjectReference)"
Exclude="@(_ReferencedProjectName)"
/>
<_ForbiddenReferenceHit
Include="@(ForbiddenProjectReference)"
Exclude="@(_AllowedForbiddenReference)"
/>
</ItemGroup>
<Error
Condition="'@(_ForbiddenReferenceHit)' != ''"
Code="DPZARCH001"
Text="$(MSBuildProjectName) 违反架构约束,不允许引用以下项目:@(_ForbiddenReferenceHit->'%(Identity)(%(Reason))', ';')"
/>
</Target>
</Project>
AI 正在分析代码…
评论加载中...