Build RID specific .All and .App symbols packages

This commit is contained in:
= 2018-01-30 16:22:57 -08:00 committed by John Luo
parent 3309cc5f90
commit 0e67bc83c8
5 changed files with 107 additions and 20 deletions

View File

@ -64,17 +64,10 @@
<PackageArchiveFileName>nuGetPackagesArchive-$(PackageVersion).lzma</PackageArchiveFileName>
<InstallerBaseFileName>aspnetcore-runtime-$(PackageVersion)</InstallerBaseFileName>
<InstallerAliasBaseFileName>aspnetcore-runtime-latest</InstallerAliasBaseFileName>
<SymbolsArchiveBaseFileName>aspnetcore-runtime-symbols-$(PackageVersion)</SymbolsArchiveBaseFileName>
<IntermediateInstallerBaseFileName>aspnetcore-runtime-internal-$(PackageVersion)</IntermediateInstallerBaseFileName>
</PropertyGroup>
<ItemGroup>
<!-- symbols archives -->
<FilesToPublish Include="$(DependencyAssetsDir)$(SymbolsArchiveBaseFileName)-%(RuntimeSymbolsArchive.Identity)%(RuntimeSymbolsArchive.FileExt)" Condition=" '%(RuntimeSymbolsArchive.Identity)' != '' ">
<RelativeBlobPath>$(BlobBasePath)$(SymbolsArchiveBaseFileName)-%(RuntimeSymbolsArchive.Identity)%(RuntimeSymbolsArchive.FileExt)</RelativeBlobPath>
<ManifestArtifactData>ShipInstaller=dotnetcli</ManifestArtifactData>
</FilesToPublish>
<!-- Intermediate files passed on to the dotnet-CLI. -->
<FilesToPublish Include="$(DependencyAssetsDir)$(PackageArchiveFileName)" >
<RelativeBlobPath>$(BlobBasePath)$(PackageArchiveFileName)</RelativeBlobPath>

View File

@ -11,6 +11,7 @@
<_DebToolDir>$(MSBuildThisFileDirectory)tools\dotnet-deb-tool-consumer\</_DebToolDir>
<_SharedFxSourceDir>$(RepositoryRoot).deps\Signed\SharedFx\</_SharedFxSourceDir>
<_InstallerSourceDir>$(RepositoryRoot).deps\Installers\</_InstallerSourceDir>
<_SymbolsSourceDir>$(RepositoryRoot).deps\Symbols\</_SymbolsSourceDir>
<_DockerRootDir>/opt/code/</_DockerRootDir>
<_InstallersOutputDir>$(ArtifactsDir)installers\</_InstallersOutputDir>
<!-- 3B = semicolon in ASCII -->

View File

@ -284,9 +284,18 @@
<ItemGroup>
<IgnoredAssemblies Include="@(AppPublishAssemblies);@(AllPublishAssemblies)" Condition="'%(AssetType)' == 'native' OR '%(AssetType)' == 'resources'" />
<AppRuntimeAssemblies Include="@(AppPublishAssemblies)" Condition="'%(AssetType)' == 'runtime'">
<PortablePDB>%(RootDir)%(Directory)%(Filename).pdb</PortablePDB>
</AppRuntimeAssemblies>
<AllRuntimeAssemblies Include="@(AllPublishAssemblies)" Exclude="@(AppRuntimeAssemblies)" Condition="'%(AssetType)' == 'runtime'">
<PortablePDB>%(RootDir)%(Directory)%(Filename).pdb</PortablePDB>
</AllRuntimeAssemblies>
<OtherAssemblies Include="@(AppPublishAssemblies);@(AllPublishAssemblies)" Exclude="@(IgnoredAssemblies);@(AppRuntimeAssemblies);@(AllRuntimeAssemblies)" />
<_AssembliesToCrossgen Include="$(SharedFxIntermediateOutputPath)**\*.dll" />
</ItemGroup>
<Error Text="Unaccounted shared framework assemblies found: @(OtherAssemblies). Assemblies must be included as runtime assemblies or marked as ignored." Condition="'@(OtherAssemblies)' != ''" />
<!-- Compute the intersection of crossgen candidates and native/resources assemblies as the set of assemblies to skip crossgen -->
<CreateItem Include="@(_AssembliesToCrossgen)" Condition="'%(Filename)' != ''and '@(IgnoredAssemblies)' != ''">
<Output TaskParameter="Include" ItemName="AssembliesToRemove"/>
@ -303,6 +312,14 @@
</AssembliesToCrossgen>
<AssembliesToCrossgen Remove="@(AssembliesToRemove)" />
</ItemGroup>
<!-- Compute the intersection of runtime assemblies and assemblies to crossgen to resolve the set of portablePDBs to publish -->
<CreateItem Include="@(AppRuntimeAssemblies)" Condition="'%(Filename)' != ''and '@(AssembliesToCrossgen)' != ''">
<Output TaskParameter="Include" ItemName="AppPortablePDBsToPublish"/>
</CreateItem>
<CreateItem Include="@(AllRuntimeAssemblies)" Condition="'%(Filename)' != ''and '@(AssembliesToCrossgen)' != ''">
<Output TaskParameter="Include" ItemName="AllPortablePDBsToPublish"/>
</CreateItem>
</Target>
<Target Name="CrossGenAssemblies"
@ -350,19 +367,77 @@
<Exec Command="$(SharedFxCrossGenToolDirectory)$(CrossGenTool) @%(AssembliesToCrossgen.SymbolsRsp)" EnvironmentVariables="COMPlus_PartialNGen=0" />
</Target>
<Target Name="PackSharedFx">
<Target Name="_BuildSharedFxSymbols">
<PropertyGroup>
<SymbolsPackageId>runtime.$(SharedFxRID).$(SymbolsNuspecIdSuffix)</SymbolsPackageId>
</PropertyGroup>
<ItemGroup>
<CrossGenOutput Include="$(SharedFxCrossGenDirectory)**\*.dll" />
<CrossGenSymbols Include="$(SharedFxCrossGenDirectory)**\*" Exclude="@(CrossGenOutput)" />
<_SymbolFiles Include="$(SymbolsWorkDir)**\*.pdb;$(SymbolsWorkDir)**\*.map" />
<SymbolFiles Include="@(_SymbolFiles)">
<PackagePath>%(RecursiveDir)%(Filename)%(Extension)</PackagePath>
</SymbolFiles>
</ItemGroup>
<!-- Create symbols archive -->
<ZipArchive
File="$(SharedFxOutputPath)$(SharedFxInstallerName)-symbols-$(PackageVersion)-$(SharedFxRID).zip"
SourceFiles="@(CrossGenSymbols)"
WorkingDirectory="$(SharedFxCrossGenDirectory)"
<!-- Create Layout -->
<Copy
SourceFiles="$(_TemplatesDir)SharedFxSymbols\SharedFrameworkSymbols.nuspec"
DestinationFiles="$(SymbolsWorkDir)$(SymbolsPackageId).nuspec"
OverwriteReadOnlyFiles="True" />
<!-- Produce symbols nupkg -->
<PackNuspec NuspecPath="$(SymbolsWorkDir)$(SymbolsPackageId).nuspec"
DestinationFolder="$([MSBuild]::NormalizeDirectory($(ArtifactsDir)))symbols\"
Properties="version=$(PackageVersion);id=$(SymbolsPackageId);description=$(Description);Configuration=$(Configuration)"
Overwrite="true"
Condition="$([MSBuild]::IsOSPlatform('Linux')) OR $([MSBuild]::IsOSPlatform('Windows'))"/>
PackageFiles="@(SymbolFiles)"
BasePath="$(SymbolsWorkDir)" />
</Target>
<Target Name="PackSharedFx" DependsOnTargets="DefineSharedFxPrerequisites" >
<PropertyGroup>
<AppSharedFxSymbolsDirectory>$(_WorkRoot)Symbols\Microsoft.AspNetCore.App\</AppSharedFxSymbolsDirectory>
<AllSharedFxSymbolsDirectory>$(_WorkRoot)Symbols\Microsoft.AspNetCore.All\</AllSharedFxSymbolsDirectory>
</PropertyGroup>
<ItemGroup>
<CrossGenOutput Include="$(SharedFxCrossGenDirectory)**\*.dll" />
<AppCrossGenSymbols Include="$(SharedFxCrossGenDirectory)shared\Microsoft.AspNetCore.App\$(PackageVersion)\**\*" Exclude="@(CrossGenOutput)" />
<AllCrossGenSymbols Include="$(SharedFxCrossGenDirectory)shared\Microsoft.AspNetCore.All\$(PackageVersion)\**\*" Exclude="@(CrossGenOutput)" />
</ItemGroup>
<!-- Copy over PDBs -->
<Copy
SourceFiles="%(AppPortablePDBsToPublish.PortablePDB)"
DestinationFolder="$(AppSharedFxSymbolsDirectory)runtimes\$(SharedFxRID)\lib\netcoreapp2.1"
OverwriteReadOnlyFiles="True"
Condition="Exists('%(AppPortablePDBsToPublish.PortablePDB)')" />
<Copy
SourceFiles="%(AllPortablePDBsToPublish.PortablePDB)"
DestinationFolder="$(AllSharedFxSymbolsDirectory)runtimes\$(SharedFxRID)\lib\netcoreapp2.1"
OverwriteReadOnlyFiles="True"
Condition="Exists('%(AllPortablePDBsToPublish.PortablePDB)')" />
<Copy
SourceFiles="@(AppCrossGenSymbols)"
DestinationFolder="$(AppSharedFxSymbolsDirectory)runtimes\$(SharedFxRID)\lib\netcoreapp2.1"
OverwriteReadOnlyFiles="True" />
<Copy
SourceFiles="@(AllCrossGenSymbols)"
DestinationFolder="$(AllSharedFxSymbolsDirectory)runtimes\$(SharedFxRID)\lib\netcoreapp2.1"
OverwriteReadOnlyFiles="True" />
<!-- Create symbols nupkg -->
<PropertyGroup>
<AppSymbolsArguments>SymbolsWorkDir=$(AppSharedFxSymbolsDirectory)</AppSymbolsArguments>
<AppSymbolsArguments>$(AppSymbolsArguments);SymbolsNuspecIdSuffix=Microsoft.AspNetCore.App.symbols</AppSymbolsArguments>
<AppSymbolsArguments>$(AppSymbolsArguments);Description=Symbol packages for Microsoft.AspNetCore.App shared framework</AppSymbolsArguments>
<AllSymbolsArguments>SymbolsWorkDir=$(AllSharedFxSymbolsDirectory)</AllSymbolsArguments>
<AllSymbolsArguments>$(AllSymbolsArguments);SymbolsNuspecIdSuffix=Microsoft.AspNetCore.All.symbols</AllSymbolsArguments>
<AllSymbolsArguments>$(AllSymbolsArguments);Description=Symbol packages for Microsoft.AspNetCore.All shared framework</AllSymbolsArguments>
</PropertyGroup>
<MSBuild Projects="$(MSBuildProjectFullPath)" Targets="_BuildSharedFxSymbols" Properties="$(AppSymbolsArguments)" />
<MSBuild Projects="$(MSBuildProjectFullPath)" Targets="_BuildSharedFxSymbols" Properties="$(AllSymbolsArguments)" />
<!-- Replace assemblies with crossgen output -->
<Copy
@ -383,4 +458,5 @@
</Target>
<Target Name="BuildSharedFx" DependsOnTargets="ResolveSharedFxFiles;CrossGenAssemblies;CrossGenSymbols;PackSharedFx"/>
</Project>

View File

@ -25,10 +25,6 @@
<IntermediateInstaller Include="osx-x64" FileExt=".tar.gz" />
<IntermediateInstaller Include="linux-x64" FileExt=".tar.gz" />
<RuntimeSymbolsArchive Include="win-x86" FileExt=".zip" />
<RuntimeSymbolsArchive Include="win-x64" FileExt=".zip" />
<RuntimeSymbolsArchive Include="linux-x64" FileExt=".tar.gz" />
<NativeInstaller Include="win-x86" FileExt=".exe" />
<NativeInstaller Include="win-x86" FileExt=".zip" />
<NativeInstaller Include="win-x64" FileExt=".exe" />

View File

@ -0,0 +1,21 @@
<?xml version="1.0"?>
<package xmlns="http://schemas.microsoft.com/packaging/2013/05/nuspec.xsd">
<metadata>
<id>$ID$</id>
<version>$VERSION$</version>
<description>$DESCRIPTION$</description>
<authors>Microsoft</authors>
<owners>Microsoft</owners>
<copyright>Copyright © Microsoft Corporation</copyright>
<licenseUrl>https://raw.githubusercontent.com/aspnet/Home/2.0.0/LICENSE.txt</licenseUrl>
<iconUrl>https://go.microsoft.com/fwlink/?LinkID=288859</iconUrl>
<projectUrl>https://asp.net</projectUrl>
<requireLicenseAcceptance>true</requireLicenseAcceptance>
<serviceable Condition="'$(Configuration)' == 'Release'">true</serviceable>
<tags>aspnetcore</tags>
</metadata>
<files>
<file src="**\*.pdb" target="" />
<file src="**\*.map" target="" />
</files>
</package>