зеркало из https://github.com/dotnet/aspnetcore.git
189 строки
12 KiB
XML
189 строки
12 KiB
XML
<Project>
|
|
|
|
<PropertyGroup>
|
|
<!-- Only build Microsoft.AspNetCore.App and ref/ assemblies in source build. -->
|
|
<!-- Analyzer package are needed in source build for WebSDK -->
|
|
<ExcludeFromSourceBuild
|
|
Condition="'$(ExcludeFromSourceBuild)' == '' and '$(DotNetBuildFromSource)' == 'true' and '$(IsAspNetCoreApp)' != 'true' and '$(IsReferenceAssemblyProject)' != 'true' and '$(IsAnalyzersProject)' != 'true'">true</ExcludeFromSourceBuild>
|
|
|
|
<!-- If the user has specified that they want to skip building any test related projects with SkipTestBuild,
|
|
suppress all targets for TestProjects using ExcludeFromBuild. -->
|
|
<ExcludeFromBuild Condition="'$(IsPackable)' != 'true' and
|
|
'$(SkipTestBuild)' == 'true' and
|
|
('$(IsTestProject)' == 'true' or
|
|
'$(IsUnitTestProject)' == 'true' or
|
|
'$(IsTestAssetProject)' == 'true' or
|
|
'$(IsBenchmarkProject)' == 'true' or
|
|
'$(IsSampleProject)' == 'true' or
|
|
'$(IsSpecificationTestProject)' == 'true')">true</ExcludeFromBuild>
|
|
</PropertyGroup>
|
|
|
|
<PropertyGroup Label="Resx settings">
|
|
<GenerateResxSource Condition="$(GenerateResxSource) == ''">true</GenerateResxSource>
|
|
<GenerateResxSourceEmitFormatMethods Condition="$(GenerateResxSourceEmitFormatMethods) == ''">true</GenerateResxSourceEmitFormatMethods>
|
|
</PropertyGroup>
|
|
|
|
<Import Project="Sdk.targets" Sdk="Microsoft.DotNet.Arcade.Sdk" />
|
|
<!-- Properties which should be set after the project has been evaluated -->
|
|
|
|
<PropertyGroup Label="Versioning settings">
|
|
<!-- The 'human friendly' version to display in installers. In pre-release builds, this might be "2.0.7 Preview 2 Build 12356". In final builds, it should be "2.0.7" -->
|
|
<BrandingVersionSuffix>$(PreReleaseBrandingLabel) Build $(VersionSuffix)</BrandingVersionSuffix>
|
|
<PackageBrandingVersion>$(VersionPrefix)</PackageBrandingVersion>
|
|
<PackageBrandingVersion Condition=" '$(VersionSuffix)' != '' ">$(PackageBrandingVersion) $(BrandingVersionSuffix.Trim())</PackageBrandingVersion>
|
|
|
|
<SiteExtensionPackageVersion>$(VersionPrefix)</SiteExtensionPackageVersion>
|
|
<SiteExtensionPackageVersion Condition=" '$(VersionSuffix)' != '' ">$(VersionPrefix)-$(VersionSuffix.Replace('.','-'))</SiteExtensionPackageVersion>
|
|
|
|
<PackageVersion Condition=" '$(PackageVersion)' == '' ">$(Version)</PackageVersion>
|
|
<PackageVersion Condition=" '$(NoSemVer20)' == 'true' ">$(SiteExtensionPackageVersion)</PackageVersion>
|
|
<SharedFxVersion>$(PackageVersion)</SharedFxVersion>
|
|
|
|
<TargetingPackVersion>$(TargetingPackVersionPrefix)</TargetingPackVersion>
|
|
<TargetingPackVersion Condition=" '$(VersionSuffix)' != '' ">$(TargetingPackVersionPrefix)-$(VersionSuffix)</TargetingPackVersion>
|
|
|
|
<SharedFxProductName>$(Product) $(PackageVersion) Shared Framework</SharedFxProductName>
|
|
</PropertyGroup>
|
|
|
|
<PropertyGroup>
|
|
<!-- Analyzers package are special. In general, they should not have dependencies in the nuspec. Analyzer assemblies are not meant to be used for compilation or runtime. -->
|
|
<SuppressDependenciesWhenPacking Condition="'$(SuppressDependenciesWhenPacking)' == '' AND '$(IsAnalyzersProject)' == 'true'">true</SuppressDependenciesWhenPacking>
|
|
</PropertyGroup>
|
|
|
|
<PropertyGroup Condition="'$(PackAsTool)' == 'true' AND '$(IsShippingPackage)' == 'true'">
|
|
<!-- This is a requirement for Microsoft tool packages only. -->
|
|
<PackAsToolShimRuntimeIdentifiers>win-x64;win-x86</PackAsToolShimRuntimeIdentifiers>
|
|
</PropertyGroup>
|
|
|
|
<PropertyGroup Condition=" '$(MSBuildProjectExtension)' == '.csproj' ">
|
|
<PackageId Condition=" '$(PackageId)' == '' ">$(AssemblyName)</PackageId>
|
|
<IsPackable Condition="'$(IsPackable)' == '' AND ( '$(IsTestProject)' == 'true' OR '$(IsTestAssetProject)' == 'true' OR '$(IsBenchmarkProject)' == 'true' OR '$(IsSampleProject)' == 'true' OR '$(IsReferenceAssemblyProject)' == 'true' ) ">false</IsPackable>
|
|
</PropertyGroup>
|
|
|
|
<Import Project="eng\Baseline.Designer.props" />
|
|
|
|
<PropertyGroup Condition=" '$(IsPackable)' != 'false' AND '$(IsServicingBuild)' == 'true' ">
|
|
<IsPackageInThisPatch Condition="'$(IsPackageInThisPatch)' == ''">true</IsPackageInThisPatch>
|
|
<!-- Used to distinguish between packages building -->
|
|
<IsPackableInNonServicingBuild>true</IsPackableInNonServicingBuild>
|
|
<!-- Suppress creation of .nupkg for servicing builds of non-shipping projects. -->
|
|
<IsPackable Condition=" '$(IsPackageInThisPatch)' != 'true' ">false</IsPackable>
|
|
</PropertyGroup>
|
|
|
|
<PropertyGroup>
|
|
<!-- When OnlyPackPlatformSpecificPackages is set, only produce packages for projects which set RuntimeIdentifier. -->
|
|
<!-- Keep this below where we set "IsPackageInThisPatch" -->
|
|
<IsPackable Condition=" '$(OnlyPackPlatformSpecificPackages)' == 'true' AND '$(RuntimeIdentifier)' == '' ">false</IsPackable>
|
|
</PropertyGroup>
|
|
|
|
<PropertyGroup>
|
|
<PackageVersionForPackageVersionInfo>$(PackageVersion)</PackageVersionForPackageVersionInfo>
|
|
</PropertyGroup>
|
|
|
|
<PropertyGroup Condition=" '$(IsPackageInThisPatch)' != 'true' AND '$(BaselinePackageVersion)' != '' AND '$(IsServicingBuild)' == 'true' ">
|
|
<!-- This keeps assembly and package versions consistent across patches. If a package is not included in a patch, its version should stay at the baseline. -->
|
|
<AssemblyVersion Condition="$(BaselinePackageVersion.Contains('-'))">$(BaselinePackageVersion.Substring(0, $(BaselinePackageVersion.IndexOf('-')))).0</AssemblyVersion>
|
|
<AssemblyVersion Condition="! $(BaselinePackageVersion.Contains('-'))">$(BaselinePackageVersion).0</AssemblyVersion>
|
|
<!--
|
|
Ideally, we would also set the project version to match the baseline in case NuGet turns a ProjectReference into a nuspec depenendency, but
|
|
NuGet does not currently handle conflicts between packages and projects which have the same package id/version.
|
|
See https://github.com/NuGet/Home/issues/6795.
|
|
|
|
Because we still use static analysis to scrape versions, only set this during static analysis, which can be detected by checking for both NoBuild and DesignTimeBuild.
|
|
-->
|
|
<Version Condition="'$(NoBuild)' == 'true' AND '$(DesignTimeBuild)' == 'true'">$(BaselinePackageVersion)</Version>
|
|
<PackageVersion Condition="'$(NoBuild)' == 'true' AND '$(DesignTimeBuild)' == 'true'">$(BaselinePackageVersion)</PackageVersion>
|
|
|
|
<!-- For servicing builds, we want to resolve baseline versions of project packages that aren't building, always -->
|
|
<PackageVersionForPackageVersionInfo>$(BaselinePackageVersion)</PackageVersionForPackageVersionInfo>
|
|
</PropertyGroup>
|
|
|
|
<PropertyGroup>
|
|
<!-- Implementation projects are the projects which produce nuget packages or shipping assemblies. -->
|
|
<IsImplementationProject Condition=" '$(IsImplementationProject)' == '' AND '$(IsAnalyzersProject)' != 'true' AND '$(IsTestAssetProject)' != 'true' AND '$(IsTestProject)' != 'true' AND '$(IsBenchmarkProject)' != 'true' AND '$(IsSampleProject)' != 'true' AND '$(IsReferenceAssemblyProject)' != 'true' ">true</IsImplementationProject>
|
|
|
|
<!-- This determines whether a project is available as a <Reference> to other projects in this repo. -->
|
|
<IsProjectReferenceProvider Condition=" '$(IsProjectReferenceProvider)' == '' AND '$(IsImplementationProject)' == 'true' AND '$(PackAsTool)' != 'true' ">true</IsProjectReferenceProvider>
|
|
|
|
<HasReferenceAssembly
|
|
Condition=" '$(HasReferenceAssembly)' == '' AND '$(IsProjectReferenceProvider)' == 'true' AND '$(IsAspNetCoreApp)' == 'true' ">true</HasReferenceAssembly>
|
|
<HasReferenceAssembly Condition="'$(HasReferenceAssembly)' == ''">false</HasReferenceAssembly>
|
|
|
|
<IsPackable Condition="'$(IsPackable)' == '' AND ('$(IsImplementationProject)' == 'true' OR '$(IsAnalyzersProject)' == 'true') ">true</IsPackable>
|
|
<IsPackable Condition="'$(IsPackable)' == '' ">false</IsPackable>
|
|
|
|
<BuildHelixPayload Condition="'$(BuildHelixPayload)' == '' AND '$(IsTestProject)' == 'true'">true</BuildHelixPayload>
|
|
<SkipTests Condition="'$(SkipHelixReadyTests)' == 'true' AND '$(BuildHelixPayload)' == 'true'">true</SkipTests>
|
|
</PropertyGroup>
|
|
|
|
<PropertyGroup>
|
|
<PackageThirdPartyNoticesFile Condition="'$(PackageThirdPartyNoticesFile)' == ''">$(RepoRoot)THIRD-PARTY-NOTICES.TXT</PackageThirdPartyNoticesFile>
|
|
</PropertyGroup>
|
|
|
|
<ItemGroup Condition="'$(IsPackable)' == 'true'">
|
|
<None Include="$(PackageThirdPartyNoticesFile)" Pack="true" PackagePath="." />
|
|
</ItemGroup>
|
|
|
|
<ItemGroup Condition="'$(Language)' == 'C#' AND '$(IsReferenceAssemblyProject)' == 'true'">
|
|
<Compile Include="$(SharedSourceRoot)ReferenceAssemblyInfo.cs" LinkBase="Properties" />
|
|
</ItemGroup>
|
|
|
|
<PropertyGroup Condition="'$(Language)' == 'C#'">
|
|
<!-- Reference assemblies should always use Major.Minor.0.0 for assembly versions even during servicing. Only the package version should be updated. -->
|
|
<!-- Pinning the implementation assemblies at Major.Minor.0.0 as we figure out compiling against ref assemblies. -->
|
|
<AssemblyVersion>$(AspNetCoreMajorVersion).$(AspNetCoreMinorVersion).0.0</AssemblyVersion>
|
|
</PropertyGroup>
|
|
|
|
<ItemGroup>
|
|
<KnownFrameworkReference Update="Microsoft.NETCore.App">
|
|
<!-- Always update the 'latest version', whether the repo is servicing or not. -->
|
|
<LatestRuntimeFrameworkVersion Condition="'%(TargetFramework)' == '$(DefaultNetCoreTargetFramework)'">$(MicrosoftNETCoreAppRuntimeVersion)</LatestRuntimeFrameworkVersion>
|
|
<!-- Only update the default runtime version for preview builds. -->
|
|
<DefaultRuntimeFrameworkVersion Condition="'%(TargetFramework)' == '$(DefaultNetCoreTargetFramework)' and '$(IsServicingBuild)' != 'true'">$(MicrosoftNETCoreAppRuntimeVersion)</DefaultRuntimeFrameworkVersion>
|
|
<!-- Only update the targeting pack version for preview builds. -->
|
|
<TargetingPackVersion Condition="'%(TargetFramework)' == '$(DefaultNetCoreTargetFramework)' and '$(IsServicingBuild)' != 'true'">$(MicrosoftNETCoreAppRefPackageVersion)</TargetingPackVersion>
|
|
</KnownFrameworkReference>
|
|
|
|
<KnownFrameworkReference Condition="'$(UseAspNetCoreSharedRuntime)' != 'true'" Remove="Microsoft.AspNetCore.App" />
|
|
<KnownFrameworkReference Remove="Microsoft.WindowsDesktop.App" />
|
|
|
|
<KnownFrameworkReference Condition="'$(UseAspNetCoreSharedRuntime)' == 'true'" Update="Microsoft.AspNetCore.App">
|
|
<LatestRuntimeFrameworkVersion>$(SharedFxVersion)</LatestRuntimeFrameworkVersion>
|
|
<DefaultRuntimeFrameworkVersion Condition="'$(IsServicingBuild)' != 'true'">$(SharedFxVersion)</DefaultRuntimeFrameworkVersion>
|
|
<TargetingPackVersion Condition="'$(IsServicingBuild)' != 'true'">$(SharedFxVersion)</TargetingPackVersion>
|
|
</KnownFrameworkReference>
|
|
|
|
<!-- Track compiler separately from Arcade.-->
|
|
<PackageReference Include="Microsoft.Net.Compilers.Toolset"
|
|
Version="$(MicrosoftNetCompilersToolsetPackageVersion)"
|
|
PrivateAssets="all"
|
|
IsImplicitlyDefined="true" />
|
|
</ItemGroup>
|
|
|
|
<PropertyGroup Condition=" '$(CopySymbolsToArtifacts)' == 'true' AND '$(TargetFramework)' != '' ">
|
|
<BuildDependsOn>$(BuildDependsOn);_CopySymbolsToArtifacts</BuildDependsOn>
|
|
</PropertyGroup>
|
|
|
|
<Target Name="_CopySymbolsToArtifacts">
|
|
<Copy SourceFiles="$([System.IO.Path]::ChangeExtension('$(TargetPath)', 'pdb'))"
|
|
DestinationFolder="$(SymbolsOutputPath)$(TargetFramework)"
|
|
OverwriteReadOnlyFiles="$(OverwriteReadOnlyFiles)"
|
|
Retries="$(CopyRetryCount)"
|
|
RetryDelayMilliseconds="$(CopyRetryDelayMilliseconds)"
|
|
SkipUnchangedFiles="$(SkipCopyUnchangedFiles)" />
|
|
</Target>
|
|
|
|
<Import Project="eng\Workarounds.targets" />
|
|
<Import Project="eng\targets\ResolveIisReferences.targets" Condition=" '$(MSBuildProjectExtension)' != '.vcxproj' " />
|
|
<Import Project="eng\targets\Cpp.Common.targets" Condition="'$(MSBuildProjectExtension)' == '.vcxproj'" />
|
|
<Import Project="eng\targets\CSharp.Common.targets" Condition="'$(MSBuildProjectExtension)' == '.csproj'" />
|
|
<Import Project="eng\targets\FSharp.Common.targets" Condition="'$(MSBuildProjectExtension)' == '.fsproj'" />
|
|
<Import Project="eng\targets\Wix.Common.targets" Condition="'$(MSBuildProjectExtension)' == '.wixproj'" />
|
|
<Import Project="eng\targets\Npm.Common.targets" Condition="'$(MSBuildProjectExtension)' == '.npmproj'" />
|
|
<Import Project="eng\targets\ReferenceAssembly.targets" Condition=" $(HasReferenceAssembly) " />
|
|
<Import Project="eng\targets\Helix.targets" Condition="'$(IsTestProject)' == 'true'" />
|
|
<Import Project="eng\targets\FunctionalTestAsset.targets" Condition="'$(IsTestAssetProject)' == 'true'" />
|
|
<Import Project="eng\targets\FunctionalTestWithAssets.targets" Condition="'$(ContainsFunctionalTestAssets)' == 'true'" />
|
|
|
|
</Project>
|