Skip to content

Create a new Microsoft.DotNet.SharedFramework.Sdk for creating shared frameworks #5714

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 52 commits into from
Oct 9, 2020
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
52 commits
Select commit Hold shift + click to select a range
72181d3
Version 5.0.0-dev.20326.3
jkoritzinsky May 28, 2020
444612d
Merge branch 'master' of https://github.com/dotnet/arcade into unifie…
jkoritzinsky Jun 29, 2020
6399975
Port #5688 to the new SDK.
jkoritzinsky Jun 29, 2020
452628d
Update readme with documentation of the shared framework generation. …
jkoritzinsky Jun 29, 2020
564617d
Add back feature that was somehow lost in the rebase.
jkoritzinsky Jul 1, 2020
97dd8ab
Add basic docs for the installer builds.
jkoritzinsky Jul 1, 2020
4f6c956
Finish documentation.
jkoritzinsky Jul 2, 2020
a20bef3
Update host file names to be overridable to support the crossgen2 pack.
jkoritzinsky Jul 15, 2020
346b896
Fix GeneratedBuildFile check in GenerateSharedFrameworkDepsFile
jkoritzinsky Jul 15, 2020
18ab7fd
Split out the archive targets from the sharedfx targets so installer-…
jkoritzinsky Jul 15, 2020
30bd1c8
Fix error condition.
jkoritzinsky Jul 15, 2020
8ace30a
Version 5.0.0-dev.20365.8
jkoritzinsky Jul 15, 2020
81bd869
Only include runtime files in the deps file (not tool files or crosst…
jkoritzinsky Jul 22, 2020
4be0523
Exclude PackOnly=true files from the deps file. They won't be availab…
jkoritzinsky Jul 23, 2020
45610c5
Fix NuGet package type.
jkoritzinsky Jul 23, 2020
93361f5
Remove important parameter from error tasks.
jkoritzinsky Jul 23, 2020
c5565a9
Allow files to be individually opted-out of being added to the deps f…
jkoritzinsky Jul 23, 2020
3bfd295
Reduce copying and enable empty installers for linux.
jkoritzinsky Jul 27, 2020
81becff
Better handle GenerateInstallers=false when building linux packages.
jkoritzinsky Jul 30, 2020
1dd49a1
Enable overriding the package id for shared framework packages.
jkoritzinsky Jul 31, 2020
fe5e51d
Merge branch 'master' of https://github.com/dotnet/arcade into unifie…
jkoritzinsky Jul 31, 2020
f39a4fc
Add OverridePackageId property to avoid colliding with built-in NuGet…
jkoritzinsky Jul 31, 2020
3f1708b
Fix bad condition for PackageId.
jkoritzinsky Aug 3, 2020
1bd7315
Merge branch 'master' of https://github.com/dotnet/arcade into unifie…
jkoritzinsky Aug 5, 2020
5017235
First pass moving the installer and bundle infrastructure out of Micr…
jkoritzinsky Aug 5, 2020
c1042d3
Factor out the archive creation targets to a Microsoft.DotNet.Build.T…
jkoritzinsky Aug 5, 2020
61cd716
Fix installer package layout
jkoritzinsky Aug 5, 2020
cecd7d7
Fix RemoveProperties
jkoritzinsky Aug 5, 2020
5145540
Fix various bugs that crept in during the refactoring.
jkoritzinsky Aug 5, 2020
51caf02
Fix SkipBuild calculation
jkoritzinsky Aug 5, 2020
1c1f463
Fix including symbols in the symbols package.
jkoritzinsky Aug 5, 2020
afcb0de
Invoke Pack target as an inner build instead of hooking in via a wrap…
jkoritzinsky Aug 6, 2020
f4ac87f
Clean up the skip build calculations and make them actually work.
jkoritzinsky Aug 6, 2020
fe7640c
Ensure we respect the SkipBuild property in the archives and installe…
jkoritzinsky Aug 6, 2020
82acfe3
Don't reference desktop-only files on the .NET Core build.
jkoritzinsky Aug 7, 2020
8b63d86
Update READMEs of the three packages to reflect the updated organizat…
jkoritzinsky Aug 20, 2020
2da6aec
Enable overriding host json file location in the package (for crossge…
jkoritzinsky Aug 20, 2020
bf6c57b
Implement closure, type, and file version validation.
jkoritzinsky Aug 21, 2020
bd6a7e3
PR feedback.
jkoritzinsky Aug 24, 2020
304f667
Comments and var clarification.
jkoritzinsky Aug 24, 2020
840626f
Automatically calculate ignored references for closure validation bas…
jkoritzinsky Aug 27, 2020
80aee3c
Set SelfContained to true when processing framework references.
jkoritzinsky Aug 27, 2020
a5c17c4
Don't set BuildDependsOn to empty. It breaks packages that hook into …
jkoritzinsky Aug 27, 2020
4165ccc
Merge branch 'master' into unified-sharedfx-sdk
jkoritzinsky Sep 11, 2020
93e0577
Use System.Reflection.Metadata to get the assembly name to ensure .NE…
jkoritzinsky Sep 15, 2020
b31c01f
Merge branch 'unified-sharedfx-sdk' of github.com:jkoritzinsky/arcade…
jkoritzinsky Sep 15, 2020
47b10a6
Rename folder to avoid warning
jkoritzinsky Sep 15, 2020
a46fcaf
Remove unneeded NoWarn
jkoritzinsky Sep 15, 2020
4543285
Merge branch 'master' of https://github.com/dotnet/arcade into pr/jko…
jkoritzinsky Sep 15, 2020
6ece972
React to changes in PrepareForReadyToRunCompilation.
jkoritzinsky Sep 15, 2020
9701071
Fix packaging non RuntimePack shared framework packs in msi installers.
jkoritzinsky Sep 15, 2020
70819f2
Enable overriding the targets and tasks for the installer and archive…
jkoritzinsky Sep 29, 2020
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 14 additions & 0 deletions .gitattributes
Original file line number Diff line number Diff line change
Expand Up @@ -47,3 +47,17 @@
###############################################################################
*.png binary
*.snk binary


###############################################################################
# Set file behavior to:
# treat as text, lf line endings
###############################################################################
changelog text eol=lf
control text eol=lf
copyright text eol=lf
rules text eol=lf
format text eol=lf
compat text eol=lf
*.bats text eol=lf
*.1 text eol=lf
28 changes: 28 additions & 0 deletions Arcade.sln
Original file line number Diff line number Diff line change
Expand Up @@ -99,6 +99,8 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.DotNet.Helix.Sdk.
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.DotNet.AsmDiff", "src\Microsoft.DotNet.AsmDiff\Microsoft.DotNet.AsmDiff.csproj", "{FDCE3109-3EA0-4166-B6C0-BE7BB4196864}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.DotNet.SharedFramework.Sdk", "src\Microsoft.DotNet.SharedFramework.Sdk\Microsoft.DotNet.SharedFramework.Sdk.csproj", "{9EB0B2AE-C55C-4DEF-90B3-44E73F0A366D}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.DotNet.Build.Tasks.Installers", "src\Microsoft.DotNet.Build.Tasks.Installers\Microsoft.DotNet.Build.Tasks.Installers.csproj", "{32070F78-5045-4402-BCB5-D8A2D479770A}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.DotNet.RemoteExecutor.Tests", "src\Microsoft.DotNet.RemoteExecutor\tests\Microsoft.DotNet.RemoteExecutor.Tests.csproj", "{D6AC20A4-1719-49FE-B112-B2AB564496F8}"
Expand All @@ -113,6 +115,8 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "TestProjects", "TestProject
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AttributeDifference.Contract", "src\Microsoft.DotNet.ApiCompat\tests\TestProjects\AttributeDifference\Contract\AttributeDifference.Contract.csproj", "{1CC55B23-6212-4120-BF52-8DED9CFF9FBC}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.DotNet.Build.Tasks.Archives", "src\Microsoft.DotNet.Build.Tasks.Archives\Microsoft.DotNet.Build.Tasks.Archives.csproj", "{5579768A-CC07-477C-ACE4-06FE9B0686A7}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.DotNet.SourceBuild.Tasks", "src\Microsoft.DotNet.SourceBuild\tasks\Microsoft.DotNet.SourceBuild.Tasks.csproj", "{F9D72AF5-9320-43C8-A24F-CBE294FCED0A}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.DotNet.SourceBuild.Tasks.Tests", "src\Microsoft.DotNet.SourceBuild\tests\Microsoft.DotNet.SourceBuild.Tasks.Tests.csproj", "{CE5278A3-2442-4309-A543-5BA5C1C76A2A}"
Expand Down Expand Up @@ -639,6 +643,18 @@ Global
{FDCE3109-3EA0-4166-B6C0-BE7BB4196864}.Release|x64.Build.0 = Release|Any CPU
{FDCE3109-3EA0-4166-B6C0-BE7BB4196864}.Release|x86.ActiveCfg = Release|Any CPU
{FDCE3109-3EA0-4166-B6C0-BE7BB4196864}.Release|x86.Build.0 = Release|Any CPU
{9EB0B2AE-C55C-4DEF-90B3-44E73F0A366D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{9EB0B2AE-C55C-4DEF-90B3-44E73F0A366D}.Debug|Any CPU.Build.0 = Debug|Any CPU
{9EB0B2AE-C55C-4DEF-90B3-44E73F0A366D}.Debug|x64.ActiveCfg = Debug|Any CPU
{9EB0B2AE-C55C-4DEF-90B3-44E73F0A366D}.Debug|x64.Build.0 = Debug|Any CPU
{9EB0B2AE-C55C-4DEF-90B3-44E73F0A366D}.Debug|x86.ActiveCfg = Debug|Any CPU
{9EB0B2AE-C55C-4DEF-90B3-44E73F0A366D}.Debug|x86.Build.0 = Debug|Any CPU
{9EB0B2AE-C55C-4DEF-90B3-44E73F0A366D}.Release|Any CPU.ActiveCfg = Release|Any CPU
{9EB0B2AE-C55C-4DEF-90B3-44E73F0A366D}.Release|Any CPU.Build.0 = Release|Any CPU
{9EB0B2AE-C55C-4DEF-90B3-44E73F0A366D}.Release|x64.ActiveCfg = Release|Any CPU
{9EB0B2AE-C55C-4DEF-90B3-44E73F0A366D}.Release|x64.Build.0 = Release|Any CPU
{9EB0B2AE-C55C-4DEF-90B3-44E73F0A366D}.Release|x86.ActiveCfg = Release|Any CPU
{9EB0B2AE-C55C-4DEF-90B3-44E73F0A366D}.Release|x86.Build.0 = Release|Any CPU
{32070F78-5045-4402-BCB5-D8A2D479770A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{32070F78-5045-4402-BCB5-D8A2D479770A}.Debug|Any CPU.Build.0 = Debug|Any CPU
{32070F78-5045-4402-BCB5-D8A2D479770A}.Debug|x64.ActiveCfg = Debug|Any CPU
Expand Down Expand Up @@ -699,6 +715,18 @@ Global
{1CC55B23-6212-4120-BF52-8DED9CFF9FBC}.Release|x64.Build.0 = Release|Any CPU
{1CC55B23-6212-4120-BF52-8DED9CFF9FBC}.Release|x86.ActiveCfg = Release|Any CPU
{1CC55B23-6212-4120-BF52-8DED9CFF9FBC}.Release|x86.Build.0 = Release|Any CPU
{5579768A-CC07-477C-ACE4-06FE9B0686A7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{5579768A-CC07-477C-ACE4-06FE9B0686A7}.Debug|Any CPU.Build.0 = Debug|Any CPU
{5579768A-CC07-477C-ACE4-06FE9B0686A7}.Debug|x64.ActiveCfg = Debug|Any CPU
{5579768A-CC07-477C-ACE4-06FE9B0686A7}.Debug|x64.Build.0 = Debug|Any CPU
{5579768A-CC07-477C-ACE4-06FE9B0686A7}.Debug|x86.ActiveCfg = Debug|Any CPU
{5579768A-CC07-477C-ACE4-06FE9B0686A7}.Debug|x86.Build.0 = Debug|Any CPU
{5579768A-CC07-477C-ACE4-06FE9B0686A7}.Release|Any CPU.ActiveCfg = Release|Any CPU
{5579768A-CC07-477C-ACE4-06FE9B0686A7}.Release|Any CPU.Build.0 = Release|Any CPU
{5579768A-CC07-477C-ACE4-06FE9B0686A7}.Release|x64.ActiveCfg = Release|Any CPU
{5579768A-CC07-477C-ACE4-06FE9B0686A7}.Release|x64.Build.0 = Release|Any CPU
{5579768A-CC07-477C-ACE4-06FE9B0686A7}.Release|x86.ActiveCfg = Release|Any CPU
{5579768A-CC07-477C-ACE4-06FE9B0686A7}.Release|x86.Build.0 = Release|Any CPU
{F9D72AF5-9320-43C8-A24F-CBE294FCED0A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{F9D72AF5-9320-43C8-A24F-CBE294FCED0A}.Debug|Any CPU.Build.0 = Debug|Any CPU
{F9D72AF5-9320-43C8-A24F-CBE294FCED0A}.Debug|x64.ActiveCfg = Debug|Any CPU
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
<!-- Licensed to the .NET Foundation under one or more agreements. The .NET Foundation licenses this file to you under the MIT license. See the LICENSE file in the project root for more information. -->
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFrameworks>netcoreapp2.1</TargetFrameworks>
<ExcludeFromSourceBuild>false</ExcludeFromSourceBuild>

<IsPackable>true</IsPackable>
<PackTasks>false</PackTasks>

<Description>Targets for producing an archive of file outputs.</Description>
<PackageType>MSBuildSdk</PackageType>

<EnableGeneratedPackageContent>false</EnableGeneratedPackageContent>
</PropertyGroup>

<Import Project="$(RepoRoot)eng\BuildTask.targets" />
</Project>
12 changes: 12 additions & 0 deletions src/Microsoft.DotNet.Build.Tasks.Archives/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
# Microsoft.DotNet.Build.Tasks.Archives

Targets package for producing zip and tar archives.

This package generates an archive that can be extracted on top of an existing .NET SDK or Runtime layout. The name of this file is derived from the `ArchiveName` property and the RID. The `ArchiveName` property defaults to the project file name without the extension. This package calls the `PublishToDisk` target on the project to generate the project layout.

## Build Skip Support for Unsupported Platforms and Servicing

This SDK also supports automatically skipping builds on unsupported platforms or in servicing releases. If a project with a list of provided RIDs in `RuntimeIdentifiers` is built with the `RuntimeIdentifier` property set to a RID that is not in the `RuntimeIdentifiers` list, the build will be skipped. This enables cleanly skipping optional packs, installers, or bundles that only exist on specific platforms.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If aspnetcore was going to use this, the "or in servicing releases" bit must be something we could override. We Zip both our shared Fx contributions and our targeting packs. The shared Fx Zips are produced unconditionally. And, we've had multiple 3.1.x releases that had to include updated targeting pack content.

Copy link
Member

@dagood dagood Aug 24, 2020

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It is implemented this way--that targeting pack vs. sharedfx behavior is universal. I think what I landed with in dotnet/runtime etc. is pretty nice if I may say so myself 😄:

https://github.com/dotnet/runtime/blob/e535e10f7ff66960ef3552794fdfb81e028e8b5e/eng/Versions.props#L34-L51

  <!--
    Servicing build settings for Setup/Installer packages. Instructions:
    * To enable a package build for the current patch release, set PatchVersion to match the current
      patch version of that package. ("major.minor.patch".) This is normally the same as
      PatchVersion above, but not always. Notably, NETStandard has its own patch version.
    * When the PatchVersion property above is incremented at the beginning of the next servicing
      release, all packages listed below automatically stop building because the property no longer
      matches the metadata. (Do not delete the items!)
    If the PatchVersion below is never changed from '0', the package will build in the 'master'
    branch, and during a forked RTM release ("X.Y.0"). It will stop building for "X.Y.1" unless
    manually enabled by updating the metadata.
  -->
  <ItemGroup>
    <!-- Targeting packs are only patched in extreme cases. -->
    <ProjectServicingConfiguration Include="Microsoft.NETCore.App.Ref" PatchVersion="0" />
  </ItemGroup>


Additionally, if a `ProjectServicingConfiguration` item is provided with the identity of the project name and the `PatchVersion` metadata on the item is not equal to the current `PatchVersion`, the build will be skipped. This support enables a repository to disable building targeting packs in servicing releases if that is desired.

Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
<Project>
<PropertyGroup>
<MicrosoftDotNetBuildTasksArchivesMSBuildDir Condition="'$(MicrosoftDotNetBuildTasksArchivesMSBuildDir)' == ''">$(MSBuildThisFileDirectory)</MicrosoftDotNetBuildTasksArchivesMSBuildDir>
</PropertyGroup>

<Import Project="$(MicrosoftDotNetBuildTasksArchivesMSBuildDir)archives.targets" />
</Project>
121 changes: 121 additions & 0 deletions src/Microsoft.DotNet.Build.Tasks.Archives/build/archives.targets
Original file line number Diff line number Diff line change
@@ -0,0 +1,121 @@
<Project>
<Target Name="_GetCurrentProjectServicingConfiguration">
<ItemGroup>
<CurrentProjectServicingConfiguration
Include="@(ProjectServicingConfiguration)"
Condition="'%(Identity)' == '$(MSBuildProjectName)'" />
</ItemGroup>
</Target>

<!--
The Microsoft build's per-package servicing policy conflicts with the source-build restrictions.
Targeting packs, for example, are only built/published when there's a known change to release.
This is in contrast to runtime packs and the shared framework, which are always built and
published. This means it's common in the Microsoft build for downstream repos to depend on two
builds' outputs: the current build's runtime assets, and some old build's targeting pack.

The Microsoft build can simply download the old targeting pack from NuGet.org. Source-build
can't do this because the bits on NuGet.org are not built locally. Instead, source-build assumes
it's possible to use current sources to build a package with the old version. This target
applies the old build's patch version to make that happen.

This solution has pitfalls. More info at https://github.com/dotnet/core-setup/issues/8735. The
target supports SkipSetLastReleasedVersionForSourceBuild (unused as of writing) to allow
disabling this workaround if a better way forward is implemented.
-->
<Target Name="SetLastReleasedVersionForSourceBuild"
Condition="
'$(DotNetBuildFromSource)' == 'true' and
'$(SkipSetLastReleasedVersionForSourceBuild)' != 'true'"
BeforeTargets="GetProductVersions"
DependsOnTargets="_GetCurrentProjectServicingConfiguration">
<PropertyGroup>
<MostRecentProducedServicingPatchVersion>%(CurrentProjectServicingConfiguration.PatchVersion)</MostRecentProducedServicingPatchVersion>
<PatchVersion Condition="'$(MostRecentProducedServicingPatchVersion)' != ''">$(MostRecentProducedServicingPatchVersion)</PatchVersion>
</PropertyGroup>
</Target>

<Target Name="_GetSkipArchivesBuildProps"
DependsOnTargets="
_GetCurrentProjectServicingConfiguration;
SetLastReleasedVersionForSourceBuild">
<!--
Skip the build if there is an applicable servicing configuration, and the servicing
configuration indicates this project shouldn't build for this patch version.
-->
<PropertyGroup Condition="'@(CurrentProjectServicingConfiguration)' != ''">
<SkipArchivesBuild Condition="'%(CurrentProjectServicingConfiguration.PatchVersion)' != '$(PatchVersion)'">true</SkipArchivesBuild>
</PropertyGroup>

<ItemGroup>
<_TargetRuntimeIdentifiers Include="$(RuntimeIdentifiers)" />
</ItemGroup>

<PropertyGroup Condition="'$(RuntimeIdentifiers)' != '' and '$(RuntimeIdentifier)' != ''">
<!-- Avoid building a project when none of the possible RuntimeIdentifiers is the current RuntimeIdentifier. -->
<_RidInRidList Condition="'%(_TargetRuntimeIdentifiers.Identity)' == '$(RuntimeIdentifier)'">true</_RidInRidList>
<SkipArchivesBuild Condition="'$(_RidInRidList)' != 'true'">true</SkipArchivesBuild>
</PropertyGroup>
<PropertyGroup Condition="'$(SkipBuild)' == 'true'">
<SkipArchivesBuild>true</SkipArchivesBuild>
</PropertyGroup>
</Target>

<PropertyGroup>
<ArchiveName Condition="'$(ArchiveName)' == ''">$([System.IO.Path]::GetFileNameWithoutExtension($(MSBuildProjectFile)))</ArchiveName>
<SymbolsArchiveName Condition="'$(SymbolsArchiveName)' == ''">$(ArchiveName)-symbols</SymbolsArchiveName>
</PropertyGroup>

<Target Name="_CreateArchive"
Condition="'$(SkipArchivesBuild)' != 'true'">
<PropertyGroup>
<_OutputPathRoot>$(IntermediateOutputPath)output/</_OutputPathRoot>
<_ArchiveFileName>$(ArchiveName)-$(Version)</_ArchiveFileName>
<_ArchiveFileName Condition="'$(RuntimeIdentifier)' != ''">$(ArchiveName)-$(RuntimeIdentifier)-$(Version)</_ArchiveFileName>
</PropertyGroup>
<MSBuild Projects="$(MSBuildProjectFullPath)"
Targets="PublishToDisk"
Properties="OutputPath=$(_OutputPathRoot)" />

<MakeDir Directories="$(PackageOutputPath)" />
<ZipDirectory SourceDirectory="$(_OutputPathRoot)"
Overwrite="true"
DestinationFile="$(PackageOutputPath)/$(_ArchiveFileName).zip"
Condition="$([MSBuild]::IsOSPlatform(Windows))"/>
<Exec Command="tar -C '$(_OutputPathRoot)' -czf $(PackageOutputPath)/$(_ArchiveFileName).tar.gz ."
IgnoreExitCode="true"
IgnoreStandardErrorWarningFormat="true"
Condition="!$([MSBuild]::IsOSPlatform(Windows))"/>
</Target>

<Target Name="_CreateSymbolsArchive"
Condition="'$(CreateSymbolsArchive)' == 'true' and '$(SkipArchivesBuild)' != 'true'">
<PropertyGroup>
<_SymbolsOutputPathRoot>$(IntermediateOutputPath)symbols/</_SymbolsOutputPathRoot>
<_ArchiveFileName>$(SymbolsArchiveName)-$(Version)</_ArchiveFileName>
<_ArchiveFileName Condition="'$(RuntimeIdentifier)' != ''">$(SymbolsArchiveName)-$(RuntimeIdentifier)-$(Version)</_ArchiveFileName>
</PropertyGroup>
<MSBuild Projects="$(MSBuildProjectFullPath)"
Targets="PublishSymbolsToDisk"
Properties="SymbolsOutputPath=$(_SymbolsOutputPathRoot)" />

<MakeDir Directories="$(PackageOutputPath)" />
<ZipDirectory SourceDirectory="$(_SymbolsOutputPathRoot)"
Overwrite="true"
DestinationFile="$(PackageOutputPath)/$(_ArchiveFileName).zip"
Condition="$([MSBuild]::IsOSPlatform(Windows))"/>
<Exec Command="tar -C '$(_SymbolsOutputPathRoot)' -czf $(PackageOutputPath)/$(_ArchiveFileName).tar.gz ."
IgnoreExitCode="true"
IgnoreStandardErrorWarningFormat="true"
Condition="!$([MSBuild]::IsOSPlatform(Windows))"/>
</Target>

<PropertyGroup>
<BuildDependsOn>
$(BuildDependsOn);
_GetSkipArchivesBuildProps;
_CreateArchive;
_CreateSymbolsArchive
</BuildDependsOn>
</PropertyGroup>
</Project>
Original file line number Diff line number Diff line change
Expand Up @@ -9,12 +9,22 @@
<Description>Installer task package</Description>
<PackageTags>Arcade Build Tool Installer</PackageTags>
<DevelopmentDependency>true</DevelopmentDependency>
<NoWarn>$(NoWarn);NU5127</NoWarn>
<EnableDefaultNoneItems>false</EnableDefaultNoneItems>
</PropertyGroup>

<ItemGroup>
<PackageReference Include="System.Reflection.Metadata" Version="$(SystemReflectionMetadataVersion)" />
<PackageReference Include="Microsoft.Build.Utilities.Core" Version="$(MicrosoftBuildUtilitiesCoreVersion)" />
<PackageReference Include="Microsoft.Build.Tasks.Core" Version="$(MicrosoftBuildTasksCoreVersion)" />
<PackageReference Include="Microsoft.Build.Framework" Version="$(MicrosoftBuildFrameworkVersion)" />
<PackageReference Include="Newtonsoft.Json" Version="$(NewtonsoftJsonVersion)" />
</ItemGroup>

<ItemGroup>
<None Include="build/**/*.*" Pack="true">
<PackagePath>build</PackagePath>
</None>
</ItemGroup>

<ItemGroup Condition="'$(TargetFramework)' == 'net472'">
Expand Down
Loading