Merge branch 'main' into darc-main-b6a05513-a163-4e77-98b3-6094a1797925

This commit is contained in:
Tanay Parikh 2021-05-05 11:39:24 -07:00 committed by GitHub
commit 0c6c519206
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
24 changed files with 576 additions and 124 deletions

View file

@ -46,10 +46,10 @@ stages:
pool:
${{ if eq(variables['System.TeamProject'], 'public') }}:
name: NetCorePublic-Pool
queue: buildpool.windows.10.amd64.vs2017.open
queue: buildpool.windows.10.amd64.vs2019.open
${{ if eq(variables['System.TeamProject'], 'internal') }}:
name: NetCoreInternal-Pool
queue: buildpool.windows.10.amd64.vs2017
queue: buildpool.windows.10.amd64.vs2019
timeoutInMinutes: 180
strategy:
matrix:
@ -103,10 +103,10 @@ stages:
pool:
${{ if eq(variables['System.TeamProject'], 'public') }}:
name: NetCorePublic-Pool
queue: buildpool.windows.10.amd64.vs2017.open
queue: buildpool.windows.10.amd64.vs2019.open
${{ if eq(variables['System.TeamProject'], 'internal') }}:
name: NetCoreInternal-Pool
queue: buildpool.windows.10.amd64.vs2017
queue: buildpool.windows.10.amd64.vs2019
timeoutInMinutes: 180
strategy:
matrix:
@ -339,6 +339,12 @@ stages:
# Never run tests on arm64
_TestArg: ''
- template: /eng/common/templates/job/source-build.yml
parameters:
platform:
name: 'Managed'
container: 'mcr.microsoft.com/dotnet-buildtools/prereqs:centos-7-3e800f1-20190501005343'
# https://github.com/dotnet/core-sdk/issues/248
# - template: /eng/build.yml
# parameters:

42
Native.sln Normal file
View file

@ -0,0 +1,42 @@

Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio Version 16
VisualStudioVersion = 16.0.28603.18
MinimumVisualStudioVersion = 10.0.40219.1
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{ED2FE3E2-F7E7-4389-8231-B65123F2076F}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "finalizer_shim", "src\finalizer_shim\finalizer_shim.csproj", "{688E2883-C5A9-4D66-A207-772C9160989C}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|x86 = Debug|x86
Debug|x64 = Debug|x64
Debug|arm64 = Debug|arm64
Release|x86 = Release|x86
Release|x64 = Release|x64
Release|arm64 = Release|arm64
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{688E2883-C5A9-4D66-A207-772C9160989C}.Debug|x86.ActiveCfg = Debug|x86
{688E2883-C5A9-4D66-A207-772C9160989C}.Debug|x86.Build.0 = Debug|x86
{688E2883-C5A9-4D66-A207-772C9160989C}.Debug|x64.ActiveCfg = Debug|x64
{688E2883-C5A9-4D66-A207-772C9160989C}.Debug|x64.Build.0 = Debug|x64
{688E2883-C5A9-4D66-A207-772C9160989C}.Debug|arm64.ActiveCfg = Debug|arm64
{688E2883-C5A9-4D66-A207-772C9160989C}.Debug|arm64.Build.0 = Debug|arm64
{688E2883-C5A9-4D66-A207-772C9160989C}.Release|x86.ActiveCfg = Release|x86
{688E2883-C5A9-4D66-A207-772C9160989C}.Release|x86.Build.0 = Release|x86
{688E2883-C5A9-4D66-A207-772C9160989C}.Release|x64.ActiveCfg = Release|x64
{688E2883-C5A9-4D66-A207-772C9160989C}.Release|x64.Build.0 = Release|x64
{688E2883-C5A9-4D66-A207-772C9160989C}.Release|arm64.ActiveCfg = Release|arm64
{688E2883-C5A9-4D66-A207-772C9160989C}.Release|arm64.Build.0 = Release|arm64
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
GlobalSection(NestedProjects) = preSolution
{688E2883-C5A9-4D66-A207-772C9160989C} = {ED2FE3E2-F7E7-4389-8231-B65123F2076F}
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {18FCFCA3-D1A8-4D3A-9763-6A658D0D726F}
EndGlobalSection
EndGlobal

8
eng/Build.props Normal file
View file

@ -0,0 +1,8 @@
<Project>
<ItemGroup>
<ProjectToBuild Include="$(RepoRoot)Microsoft.DotNet.Cli.sln" />
<ProjectToBuild Condition="'$(OS)' == 'Windows_NT' And ('$(Architecture)' == 'x86' Or '$(Architecture)' == 'x64' Or '$(Architecture)' == 'arm64')"
Include="$(RepoRoot)eng\version.csproj;
$(RepoRoot)eng\native.proj" />
</ItemGroup>
</Project>

View file

@ -13,25 +13,25 @@
<Uri>https://github.com/dotnet/windowsdesktop</Uri>
<Sha>9570a321daf2bd6756b91a0866bb8e0d7874190d</Sha>
</Dependency>
<Dependency Name="VS.Redist.Common.NetCore.SharedFramework.x64.6.0" Version="6.0.0-preview.5.21229.9" CoherentParentDependency="Microsoft.NET.Sdk">
<Dependency Name="VS.Redist.Common.NetCore.SharedFramework.x64.6.0" Version="6.0.0-preview.5.21254.12" CoherentParentDependency="Microsoft.NET.Sdk">
<Uri>https://github.com/dotnet/runtime</Uri>
<Sha>49aec59e52d2f0bc8e2acd297023aa8464aee00c</Sha>
<Sha>65020c946254c9a99497f4fdfa4136131f51f913</Sha>
</Dependency>
<Dependency Name="Microsoft.NETCore.App.Ref" Version="6.0.0-preview.5.21229.9" CoherentParentDependency="Microsoft.NET.Sdk">
<Dependency Name="Microsoft.NETCore.App.Ref" Version="6.0.0-preview.5.21254.12" CoherentParentDependency="Microsoft.NET.Sdk">
<Uri>https://github.com/dotnet/runtime</Uri>
<Sha>49aec59e52d2f0bc8e2acd297023aa8464aee00c</Sha>
<Sha>65020c946254c9a99497f4fdfa4136131f51f913</Sha>
</Dependency>
<Dependency Name="Microsoft.NETCore.App.Runtime.win-x64" Version="6.0.0-preview.5.21229.9" CoherentParentDependency="Microsoft.NET.Sdk">
<Dependency Name="Microsoft.NETCore.App.Runtime.win-x64" Version="6.0.0-preview.5.21254.12" CoherentParentDependency="Microsoft.NET.Sdk">
<Uri>https://github.com/dotnet/runtime</Uri>
<Sha>49aec59e52d2f0bc8e2acd297023aa8464aee00c</Sha>
<Sha>65020c946254c9a99497f4fdfa4136131f51f913</Sha>
</Dependency>
<Dependency Name="Microsoft.NETCore.App.Host.win-x64" Version="6.0.0-preview.5.21229.9" CoherentParentDependency="Microsoft.NET.Sdk">
<Dependency Name="Microsoft.NETCore.App.Host.win-x64" Version="6.0.0-preview.5.21254.12" CoherentParentDependency="Microsoft.NET.Sdk">
<Uri>https://github.com/dotnet/runtime</Uri>
<Sha>49aec59e52d2f0bc8e2acd297023aa8464aee00c</Sha>
<Sha>65020c946254c9a99497f4fdfa4136131f51f913</Sha>
</Dependency>
<Dependency Name="Microsoft.NETCore.DotNetHostResolver" Version="6.0.0-preview.5.21229.9" CoherentParentDependency="Microsoft.NET.Sdk">
<Dependency Name="Microsoft.NETCore.DotNetHostResolver" Version="6.0.0-preview.5.21254.12" CoherentParentDependency="Microsoft.NET.Sdk">
<Uri>https://github.com/dotnet/runtime</Uri>
<Sha>49aec59e52d2f0bc8e2acd297023aa8464aee00c</Sha>
<Sha>65020c946254c9a99497f4fdfa4136131f51f913</Sha>
</Dependency>
<!-- Change blob version in GenerateLayout.targets if this is unpinned to service targeting pack -->
<!-- No new netstandard.library planned for 3.1 timeframe at this time. -->
@ -39,33 +39,33 @@
<Uri>https://github.com/dotnet/core-setup</Uri>
<Sha>7d57652f33493fa022125b7f63aad0d70c52d810</Sha>
</Dependency>
<Dependency Name="Microsoft.NETCore.Platforms" Version="6.0.0-preview.5.21229.9" CoherentParentDependency="Microsoft.NET.Sdk">
<Dependency Name="Microsoft.NETCore.Platforms" Version="6.0.0-preview.5.21254.12" CoherentParentDependency="Microsoft.NET.Sdk">
<Uri>https://github.com/dotnet/runtime</Uri>
<Sha>49aec59e52d2f0bc8e2acd297023aa8464aee00c</Sha>
<Sha>65020c946254c9a99497f4fdfa4136131f51f913</Sha>
</Dependency>
<Dependency Name="Microsoft.AspNetCore.App.Ref" Version="6.0.0-preview.5.21230.5" CoherentParentDependency="Microsoft.NET.Sdk">
<Dependency Name="Microsoft.AspNetCore.App.Ref" Version="6.0.0-preview.5.21255.1" CoherentParentDependency="Microsoft.NET.Sdk">
<Uri>https://github.com/dotnet/aspnetcore</Uri>
<Sha>2434aee04f2baec9ee6ed0d33fe84c8dd3009dd3</Sha>
<Sha>987f20cae50649d94d53e0a082f5c84aaea0e868</Sha>
</Dependency>
<Dependency Name="Microsoft.AspNetCore.App.Ref.Internal" Version="6.0.0-preview.5.21230.5" CoherentParentDependency="Microsoft.NET.Sdk">
<Dependency Name="Microsoft.AspNetCore.App.Ref.Internal" Version="6.0.0-preview.5.21255.1" CoherentParentDependency="Microsoft.NET.Sdk">
<Uri>https://github.com/dotnet/aspnetcore</Uri>
<Sha>2434aee04f2baec9ee6ed0d33fe84c8dd3009dd3</Sha>
<Sha>987f20cae50649d94d53e0a082f5c84aaea0e868</Sha>
</Dependency>
<Dependency Name="Microsoft.AspNetCore.App.Runtime.win-x64" Version="6.0.0-preview.5.21230.5" CoherentParentDependency="Microsoft.NET.Sdk">
<Dependency Name="Microsoft.AspNetCore.App.Runtime.win-x64" Version="6.0.0-preview.5.21255.1" CoherentParentDependency="Microsoft.NET.Sdk">
<Uri>https://github.com/dotnet/aspnetcore</Uri>
<Sha>2434aee04f2baec9ee6ed0d33fe84c8dd3009dd3</Sha>
<Sha>987f20cae50649d94d53e0a082f5c84aaea0e868</Sha>
</Dependency>
<Dependency Name="VS.Redist.Common.AspNetCore.SharedFramework.x64.6.0" Version="6.0.0-preview.5.21230.5" CoherentParentDependency="Microsoft.NET.Sdk">
<Dependency Name="VS.Redist.Common.AspNetCore.SharedFramework.x64.6.0" Version="6.0.0-preview.5.21255.1" CoherentParentDependency="Microsoft.NET.Sdk">
<Uri>https://github.com/dotnet/aspnetcore</Uri>
<Sha>2434aee04f2baec9ee6ed0d33fe84c8dd3009dd3</Sha>
<Sha>987f20cae50649d94d53e0a082f5c84aaea0e868</Sha>
</Dependency>
<Dependency Name="dotnet-dev-certs" Version="6.0.0-preview.5.21230.5" CoherentParentDependency="Microsoft.NET.Sdk">
<Dependency Name="dotnet-dev-certs" Version="6.0.0-preview.5.21255.1" CoherentParentDependency="Microsoft.NET.Sdk">
<Uri>https://github.com/dotnet/aspnetcore</Uri>
<Sha>2434aee04f2baec9ee6ed0d33fe84c8dd3009dd3</Sha>
<Sha>987f20cae50649d94d53e0a082f5c84aaea0e868</Sha>
</Dependency>
<Dependency Name="dotnet-user-secrets" Version="6.0.0-preview.5.21230.5" CoherentParentDependency="Microsoft.NET.Sdk">
<Dependency Name="dotnet-user-secrets" Version="6.0.0-preview.5.21255.1" CoherentParentDependency="Microsoft.NET.Sdk">
<Uri>https://github.com/dotnet/aspnetcore</Uri>
<Sha>2434aee04f2baec9ee6ed0d33fe84c8dd3009dd3</Sha>
<Sha>987f20cae50649d94d53e0a082f5c84aaea0e868</Sha>
</Dependency>
<Dependency Name="Microsoft.DotNet.Test.ProjectTemplates.2.1" Version="1.0.2-beta4.21226.1">
<Uri>https://github.com/dotnet/test-templates</Uri>
@ -79,17 +79,17 @@
<Uri>https://github.com/dotnet/test-templates</Uri>
<Sha>36a1b45f75489255f2d1770acd2d78c5002d4679</Sha>
</Dependency>
<Dependency Name="Microsoft.DotNet.Common.ItemTemplates" Version="6.0.100-preview.5.21230.2" CoherentParentDependency="Microsoft.NET.Sdk">
<Dependency Name="Microsoft.DotNet.Common.ItemTemplates" Version="6.0.100-preview.5.21255.2" CoherentParentDependency="Microsoft.NET.Sdk">
<Uri>https://github.com/dotnet/templating</Uri>
<Sha>9c100429018dd530ef432898eeb739db61590874</Sha>
<Sha>8c00090eab4bbdade8e6b2d820558a24bb1c894f</Sha>
</Dependency>
<Dependency Name="Microsoft.NET.Sdk" Version="6.0.100-preview.5.21230.23">
<Dependency Name="Microsoft.NET.Sdk" Version="6.0.100-preview.5.21255.10">
<Uri>https://github.com/dotnet/sdk</Uri>
<Sha>9e1210532c2d7f0bade692e405acc99bd6316058</Sha>
<Sha>9e2a5e3be210b15ee1f4c8fa3feff11f91e18c4a</Sha>
</Dependency>
<Dependency Name="Microsoft.DotNet.MSBuildSdkResolver" Version="6.0.100-preview.5.21230.23">
<Dependency Name="Microsoft.DotNet.MSBuildSdkResolver" Version="6.0.100-preview.5.21255.10">
<Uri>https://github.com/dotnet/sdk</Uri>
<Sha>9e1210532c2d7f0bade692e405acc99bd6316058</Sha>
<Sha>9e2a5e3be210b15ee1f4c8fa3feff11f91e18c4a</Sha>
</Dependency>
<!-- For coherency purposes, these versions should be gated by the versions of winforms and wpf routed via windowsdesktop -->
<Dependency Name="Microsoft.Dotnet.WinForms.ProjectTemplates" Version="6.0.0-preview.5.21226.1" CoherentParentDependency="Microsoft.WindowsDesktop.App.Runtime.win-x64">
@ -100,30 +100,30 @@
<Uri>https://github.com/dotnet/wpf</Uri>
<Sha>40775430dc86d110ba7b83ca5a898b8f4e9335e7</Sha>
</Dependency>
<Dependency Name="Microsoft.FSharp.Compiler" Version="11.4.2-beta.21227.5" CoherentParentDependency="Microsoft.NET.Sdk">
<Dependency Name="Microsoft.FSharp.Compiler" Version="11.4.2-beta.21253.4" CoherentParentDependency="Microsoft.NET.Sdk">
<Uri>https://github.com/dotnet/fsharp</Uri>
<Sha>b6a352ab0a11a0584348dd77811af7eecaf9d072</Sha>
<Sha>a999919d71f838451607deeab656d094b2d13e04</Sha>
</Dependency>
<Dependency Name="Microsoft.NET.Test.Sdk" Version="17.0.0-preview-20210430-02" CoherentParentDependency="Microsoft.NET.Sdk">
<Dependency Name="Microsoft.NET.Test.Sdk" Version="17.0.0-preview-20210504-01" CoherentParentDependency="Microsoft.NET.Sdk">
<Uri>https://github.com/microsoft/vstest</Uri>
<Sha>899fe6fa7df46ff3a7eb79caa470762531e4be53</Sha>
<Sha>5a4a4c064ec8a0e9ccb02354e0137c3264cc8fb5</Sha>
</Dependency>
<Dependency Name="Microsoft.NET.ILLink.Tasks" Version="6.0.100-preview.5.21229.1" CoherentParentDependency="Microsoft.NET.Sdk">
<Dependency Name="Microsoft.NET.ILLink.Tasks" Version="6.0.100-preview.5.21254.1" CoherentParentDependency="Microsoft.NET.Sdk">
<Uri>https://github.com/mono/linker</Uri>
<Sha>307f6b0afd2fea639fffa97e67155bafe6aa8461</Sha>
<Sha>4afa1051f5e44560368aacb21429e956ce39cc1a</Sha>
<RepoName>linker</RepoName>
</Dependency>
<Dependency Name="Microsoft.Net.Compilers.Toolset" Version="4.0.0-2.21230.20" CoherentParentDependency="Microsoft.NET.Sdk">
<Dependency Name="Microsoft.Net.Compilers.Toolset" Version="4.0.0-2.21254.26" CoherentParentDependency="Microsoft.NET.Sdk">
<Uri>https://github.com/dotnet/roslyn</Uri>
<Sha>b2390a5b46b96f33daa16998c4a88cf3cbef25ae</Sha>
<Sha>7b996850bb82a370ca74c3f57e0a4d4df1c90049</Sha>
</Dependency>
<Dependency Name="Microsoft.Build" Version="16.10.0-preview-21228-02" CoherentParentDependency="Microsoft.NET.Sdk">
<Dependency Name="Microsoft.Build" Version="16.11.0-preview-21254-21" CoherentParentDependency="Microsoft.NET.Sdk">
<Uri>https://github.com/dotnet/msbuild</Uri>
<Sha>5b9216a75e98e19eba84e04a5f30bd35a68f317a</Sha>
<Sha>e73d08c28b0d4f72bf6cf6ad9a412f35b477a430</Sha>
</Dependency>
<Dependency Name="NuGet.Build.Tasks" Version="5.10.0-preview.3.7228" CoherentParentDependency="Microsoft.NET.Sdk">
<Dependency Name="NuGet.Build.Tasks" Version="5.10.0-rc.7240" CoherentParentDependency="Microsoft.NET.Sdk">
<Uri>https://github.com/nuget/nuget.client</Uri>
<Sha>d2bb0de35242b04802c1a7856ebb7718f674565c</Sha>
<Sha>dca1d060f38e1e02f6bfca41e25f081f19fd534b</Sha>
</Dependency>
<Dependency Name="Microsoft.ApplicationInsights" Version="2.0.0">
<Uri>https://github.com/Microsoft/ApplicationInsights-dotnet</Uri>
@ -136,26 +136,26 @@
</Dependency>
</ProductDependencies>
<ToolsetDependencies>
<Dependency Name="Microsoft.DotNet.Arcade.Sdk" Version="6.0.0-beta.21228.3">
<Dependency Name="Microsoft.DotNet.Arcade.Sdk" Version="6.0.0-beta.21254.3">
<Uri>https://github.com/dotnet/arcade</Uri>
<Sha>e1044f09e18638a98a9f0448086a7295f3d16834</Sha>
<Sha>0cfaf935894a4c98ff7445c903f1b4c32990b127</Sha>
<SourceBuild RepoName="arcade" ManagedOnly="true" />
</Dependency>
<Dependency Name="Microsoft.DotNet.Build.Tasks.Installers" Version="6.0.0-beta.21228.3">
<Dependency Name="Microsoft.DotNet.Build.Tasks.Installers" Version="6.0.0-beta.21254.3">
<Uri>https://github.com/dotnet/arcade</Uri>
<Sha>e1044f09e18638a98a9f0448086a7295f3d16834</Sha>
<Sha>0cfaf935894a4c98ff7445c903f1b4c32990b127</Sha>
</Dependency>
<Dependency Name="Private.SourceBuild.ReferencePackages" Version="1.0.0-beta.20217.1">
<Uri>https://github.com/dotnet/source-build-reference-packages</Uri>
<Sha>639aeb4d76c8b1a6226bf7c4edb34fbdae30e6e1</Sha>
</Dependency>
<Dependency Name="Microsoft.SourceLink.GitHub" Version="1.1.0-beta-21201-01" CoherentParentDependency="Microsoft.DotNet.Arcade.Sdk">
<Dependency Name="Microsoft.SourceLink.GitHub" Version="1.1.0-beta-21228-01" CoherentParentDependency="Microsoft.DotNet.Arcade.Sdk">
<Uri>https://github.com/dotnet/sourcelink</Uri>
<Sha>4b584dbc392bb1aad49c2eb1ab84d8b489b6dccc</Sha>
</Dependency>
<Dependency Name="XliffTasks" Version="1.0.0-beta.21224.1" CoherentParentDependency="Microsoft.DotNet.Arcade.Sdk">
<Dependency Name="XliffTasks" Version="1.0.0-beta.21251.1" CoherentParentDependency="Microsoft.DotNet.Arcade.Sdk">
<Uri>https://github.com/dotnet/xliff-tasks</Uri>
<Sha>37099419d3170cb788fd6bc3de4f7364bc586195</Sha>
<Sha>59ce967675b3600c2de41443483949d86305de93</Sha>
</Dependency>
</ToolsetDependencies>
</Dependencies>

View file

@ -20,7 +20,7 @@
</PropertyGroup>
<PropertyGroup>
<!-- Dependency from https://github.com/dotnet/arcade -->
<MicrosoftDotNetBuildTasksInstallersPackageVersion>6.0.0-beta.21228.3</MicrosoftDotNetBuildTasksInstallersPackageVersion>
<MicrosoftDotNetBuildTasksInstallersPackageVersion>6.0.0-beta.21254.3</MicrosoftDotNetBuildTasksInstallersPackageVersion>
</PropertyGroup>
<PropertyGroup>
<!-- Dependency from https://github.com/dotnet/winforms -->
@ -32,7 +32,7 @@
</PropertyGroup>
<PropertyGroup>
<!-- Dependency from https://github.com/dotnet/templating -->
<MicrosoftDotNetCommonItemTemplatesPackageVersion>6.0.100-preview.5.21230.2</MicrosoftDotNetCommonItemTemplatesPackageVersion>
<MicrosoftDotNetCommonItemTemplatesPackageVersion>6.0.100-preview.5.21255.2</MicrosoftDotNetCommonItemTemplatesPackageVersion>
</PropertyGroup>
<PropertyGroup>
<!-- Dependency from https://github.com/dotnet/test-templates -->
@ -45,35 +45,35 @@
</PropertyGroup>
<PropertyGroup>
<!-- Dependencies from https://github.com/aspnet/AspNetCore -->
<MicrosoftAspNetCoreAppRuntimewinx64PackageVersion>6.0.0-preview.5.21230.5</MicrosoftAspNetCoreAppRuntimewinx64PackageVersion>
<MicrosoftAspNetCoreAppRefPackageVersion>6.0.0-preview.5.21230.5</MicrosoftAspNetCoreAppRefPackageVersion>
<MicrosoftAspNetCoreAppRefInternalPackageVersion>6.0.0-preview.5.21230.5</MicrosoftAspNetCoreAppRefInternalPackageVersion>
<VSRedistCommonAspNetCoreSharedFrameworkx6460PackageVersion>6.0.0-preview.5.21230.5</VSRedistCommonAspNetCoreSharedFrameworkx6460PackageVersion>
<dotnetdevcertsPackageVersion>6.0.0-preview.5.21230.5</dotnetdevcertsPackageVersion>
<dotnetusersecretsPackageVersion>6.0.0-preview.5.21230.5</dotnetusersecretsPackageVersion>
<MicrosoftAspNetCoreAppRuntimewinx64PackageVersion>6.0.0-preview.5.21255.1</MicrosoftAspNetCoreAppRuntimewinx64PackageVersion>
<MicrosoftAspNetCoreAppRefPackageVersion>6.0.0-preview.5.21255.1</MicrosoftAspNetCoreAppRefPackageVersion>
<MicrosoftAspNetCoreAppRefInternalPackageVersion>6.0.0-preview.5.21255.1</MicrosoftAspNetCoreAppRefInternalPackageVersion>
<VSRedistCommonAspNetCoreSharedFrameworkx6460PackageVersion>6.0.0-preview.5.21255.1</VSRedistCommonAspNetCoreSharedFrameworkx6460PackageVersion>
<dotnetdevcertsPackageVersion>6.0.0-preview.5.21255.1</dotnetdevcertsPackageVersion>
<dotnetusersecretsPackageVersion>6.0.0-preview.5.21255.1</dotnetusersecretsPackageVersion>
</PropertyGroup>
<PropertyGroup>
<MicroBuildCorePackageVersion>0.2.0</MicroBuildCorePackageVersion>
</PropertyGroup>
<PropertyGroup>
<!-- Dependencies from https://github.com/dotnet/sdk -->
<MicrosoftNETSdkPackageVersion>6.0.100-preview.5.21230.23</MicrosoftNETSdkPackageVersion>
<MicrosoftDotNetMSBuildSdkResolverPackageVersion>6.0.100-preview.5.21230.23</MicrosoftDotNetMSBuildSdkResolverPackageVersion>
<MicrosoftNETSdkPackageVersion>6.0.100-preview.5.21255.10</MicrosoftNETSdkPackageVersion>
<MicrosoftDotNetMSBuildSdkResolverPackageVersion>6.0.100-preview.5.21255.10</MicrosoftDotNetMSBuildSdkResolverPackageVersion>
<MicrosoftNETBuildExtensionsPackageVersion>$(MicrosoftNETSdkPackageVersion)</MicrosoftNETBuildExtensionsPackageVersion>
<MicrosoftDotnetToolsetInternalPackageVersion>$(MicrosoftNETSdkPackageVersion)</MicrosoftDotnetToolsetInternalPackageVersion>
<MicrosoftDotnetTemplateLocatorPackageVersion>$(MicrosoftNETSdkPackageVersion)</MicrosoftDotnetTemplateLocatorPackageVersion>
</PropertyGroup>
<PropertyGroup>
<!-- Dependencies from https://github.com/dotnet/corefx -->
<MicrosoftNETCorePlatformsPackageVersion>6.0.0-preview.5.21229.9</MicrosoftNETCorePlatformsPackageVersion>
<MicrosoftNETCorePlatformsPackageVersion>6.0.0-preview.5.21254.12</MicrosoftNETCorePlatformsPackageVersion>
</PropertyGroup>
<PropertyGroup>
<!-- Dependencies from https://github.com/dotnet/core-setup -->
<VSRedistCommonNetCoreSharedFrameworkx6460PackageVersion>6.0.0-preview.5.21229.9</VSRedistCommonNetCoreSharedFrameworkx6460PackageVersion>
<MicrosoftNETCoreAppRuntimewinx64PackageVersion>6.0.0-preview.5.21229.9</MicrosoftNETCoreAppRuntimewinx64PackageVersion>
<MicrosoftNETCoreAppHostwinx64PackageVersion>6.0.0-preview.5.21229.9</MicrosoftNETCoreAppHostwinx64PackageVersion>
<MicrosoftNETCoreAppRefPackageVersion>6.0.0-preview.5.21229.9</MicrosoftNETCoreAppRefPackageVersion>
<MicrosoftNETCoreDotNetHostResolverPackageVersion>6.0.0-preview.5.21229.9</MicrosoftNETCoreDotNetHostResolverPackageVersion>
<VSRedistCommonNetCoreSharedFrameworkx6460PackageVersion>6.0.0-preview.5.21254.12</VSRedistCommonNetCoreSharedFrameworkx6460PackageVersion>
<MicrosoftNETCoreAppRuntimewinx64PackageVersion>6.0.0-preview.5.21254.12</MicrosoftNETCoreAppRuntimewinx64PackageVersion>
<MicrosoftNETCoreAppHostwinx64PackageVersion>6.0.0-preview.5.21254.12</MicrosoftNETCoreAppHostwinx64PackageVersion>
<MicrosoftNETCoreAppRefPackageVersion>6.0.0-preview.5.21254.12</MicrosoftNETCoreAppRefPackageVersion>
<MicrosoftNETCoreDotNetHostResolverPackageVersion>6.0.0-preview.5.21254.12</MicrosoftNETCoreDotNetHostResolverPackageVersion>
<NETStandardLibraryRefPackageVersion>2.1.0</NETStandardLibraryRefPackageVersion>
</PropertyGroup>
<PropertyGroup>
@ -99,6 +99,9 @@
<HostFxrVersion>$(MicrosoftNETCoreAppRuntimePackageVersion)</HostFxrVersion>
<SharedHostVersion>$(MicrosoftNETCoreAppRuntimePackageVersion)</SharedHostVersion>
</PropertyGroup>
<PropertyGroup>
<WixPackageVersion>3.14.0-dotnet</WixPackageVersion>
</PropertyGroup>
<PropertyGroup>
<!-- 6.0 Template versions -->
<MicrosoftDotnetWinFormsProjectTemplates60PackageVersion>$(MicrosoftDotnetWinFormsProjectTemplatesPackageVersion)</MicrosoftDotnetWinFormsProjectTemplates60PackageVersion>
@ -142,15 +145,15 @@
<PropertyGroup>
<VersionToolsVersion>2.2.0-beta.19072.10</VersionToolsVersion>
<DotnetDebToolVersion>2.0.0</DotnetDebToolVersion>
<MicrosoftNETTestSdkVersion>17.0.0-preview-20210430-02</MicrosoftNETTestSdkVersion>
<MicrosoftNETTestSdkVersion>17.0.0-preview-20210504-01</MicrosoftNETTestSdkVersion>
</PropertyGroup>
<!-- Workload manifest package versions -->
<PropertyGroup>
<XamarinAndroidWorkloadManifestVersion>11.0.200-preview.4.232</XamarinAndroidWorkloadManifestVersion>
<XamarinIOSWorkloadManifestVersion>14.5.100-preview.4.623</XamarinIOSWorkloadManifestVersion>
<XamarinMacCatalystWorkloadManifestVersion>14.5.100-preview.4.623</XamarinMacCatalystWorkloadManifestVersion>
<XamarinMacOSWorkloadManifestVersion>11.3.100-preview.4.623</XamarinMacOSWorkloadManifestVersion>
<XamarinTvOSWorkloadManifestVersion>14.5.100-preview.4.623</XamarinTvOSWorkloadManifestVersion>
<XamarinAndroidWorkloadManifestVersion>11.0.200-preview.4.245</XamarinAndroidWorkloadManifestVersion>
<XamarinIOSWorkloadManifestVersion>14.5.100-preview.4.633</XamarinIOSWorkloadManifestVersion>
<XamarinMacCatalystWorkloadManifestVersion>14.5.100-preview.4.633</XamarinMacCatalystWorkloadManifestVersion>
<XamarinMacOSWorkloadManifestVersion>11.3.100-preview.4.633</XamarinMacOSWorkloadManifestVersion>
<XamarinTvOSWorkloadManifestVersion>14.5.100-preview.4.633</XamarinTvOSWorkloadManifestVersion>
<BlazorWorkloadManifestVersion>$(MicrosoftAspNetCoreAppRuntimePackageVersion)</BlazorWorkloadManifestVersion>
</PropertyGroup>
<PropertyGroup>

View file

@ -78,6 +78,10 @@ __IllumosPackages+=" openssl-1.1.1e"
__IllumosPackages+=" zlib-1.2.11"
__IllumosPackages+=" openldap-client-2.4.49"
# ML.NET dependencies
__UbuntuPackages+=" libomp5"
__UbuntuPackages+=" libomp-dev"
__UseMirror=0
__UnprocessedBuildArgs=

View file

@ -14,7 +14,7 @@ param(
$global:RepoFiles = @{}
# Maximum number of jobs to run in parallel
$MaxParallelJobs = 6
$MaxParallelJobs = 16
# Wait time between check for system load
$SecondsBetweenLoadChecks = 10

View file

@ -2,12 +2,13 @@ param(
[Parameter(Mandatory = $true)][string] $InputPath, # Full path to directory where NuGet packages to be checked are stored
[Parameter(Mandatory = $true)][string] $ExtractPath, # Full path to directory where the packages will be extracted during validation
[Parameter(Mandatory = $true)][string] $DotnetSymbolVersion, # Version of dotnet symbol to use
[Parameter(Mandatory = $false)][switch] $CheckForWindowsPdbs, # If we should check for the existence of windows pdbs in addition to portable PDBs
[Parameter(Mandatory = $false)][switch] $ContinueOnError, # If we should keep checking symbols after an error
[Parameter(Mandatory = $false)][switch] $Clean # Clean extracted symbols directory after checking symbols
)
# Maximum number of jobs to run in parallel
$MaxParallelJobs = 6
$MaxParallelJobs = 16
# Max number of retries
$MaxRetry = 5
@ -19,9 +20,15 @@ $SecondsBetweenLoadChecks = 10
Set-Variable -Name "ERROR_BADEXTRACT" -Option Constant -Value -1
Set-Variable -Name "ERROR_FILEDOESNOTEXIST" -Option Constant -Value -2
$WindowsPdbVerificationParam = ""
if ($CheckForWindowsPdbs) {
$WindowsPdbVerificationParam = "--windows-pdbs"
}
$CountMissingSymbols = {
param(
[string] $PackagePath # Path to a NuGet package
[string] $PackagePath, # Path to a NuGet package
[string] $WindowsPdbVerificationParam # If we should check for the existence of windows pdbs in addition to portable PDBs
)
. $using:PSScriptRoot\..\tools.ps1
@ -75,6 +82,7 @@ $CountMissingSymbols = {
param(
[string] $FullPath, # Full path to the module that has to be checked
[string] $TargetServerParam, # Parameter to pass to `Symbol Tool` indicating the server to lookup for symbols
[string] $WindowsPdbVerificationParam, # Parameter to pass to potential check for windows-pdbs.
[string] $SymbolsPath
)
@ -107,7 +115,7 @@ $CountMissingSymbols = {
while ($totalRetries -lt $using:MaxRetry) {
# Save the output and get diagnostic output
$output = & $dotnetSymbolExe --symbols --modules --windows-pdbs $TargetServerParam $FullPath -o $SymbolsPath --diagnostics | Out-String
$output = & $dotnetSymbolExe --symbols --modules $WindowsPdbVerificationParam $TargetServerParam $FullPath -o $SymbolsPath --diagnostics | Out-String
if (Test-Path $PdbPath) {
return 'PDB'
@ -136,8 +144,8 @@ $CountMissingSymbols = {
return $null
}
$SymbolsOnMSDL = & $FirstMatchingSymbolDescriptionOrDefault $FileName '--microsoft-symbol-server' $SymbolsPath
$SymbolsOnSymWeb = & $FirstMatchingSymbolDescriptionOrDefault $FileName '--internal-server' $SymbolsPath
$SymbolsOnMSDL = & $FirstMatchingSymbolDescriptionOrDefault $FileName '--microsoft-symbol-server' $SymbolsPath $WindowsPdbVerificationParam
$SymbolsOnSymWeb = & $FirstMatchingSymbolDescriptionOrDefault $FileName '--internal-server' $SymbolsPath $WindowsPdbVerificationParam
Write-Host -NoNewLine "`t Checking file " $FileName "... "
@ -222,7 +230,7 @@ function CheckSymbolsAvailable {
return
}
Start-Job -ScriptBlock $CountMissingSymbols -ArgumentList $FullName | Out-Null
Start-Job -ScriptBlock $CountMissingSymbols -ArgumentList @($FullName,$WindowsPdbVerificationParam) | Out-Null
$NumJobs = @(Get-Job -State 'Running').Count

View file

@ -12,6 +12,7 @@ parameters:
SourcesDirectory: $(Build.SourcesDirectory)
CreatePr: true
AutoCompletePr: false
UseLfLineEndings: true
UseCheckedInLocProjectJson: false
LanguageSet: VS_Main_Languages
LclSource: lclFilesInRepo
@ -59,6 +60,7 @@ jobs:
isCreatePrSelected: ${{ parameters.CreatePr }}
${{ if eq(parameters.CreatePr, true) }}:
isAutoCompletePrSelected: ${{ parameters.AutoCompletePr }}
isUseLfLineEndingsSelected: ${{ parameters.UseLfLineEndings }}
packageSourceAuth: patAuth
patVariable: ${{ parameters.CeapexPat }}
${{ if eq(parameters.RepoType, 'gitHub') }}:

View file

@ -2,3 +2,5 @@
$script:useInstalledDotNetCli = $false
# Add CMake to the path.
$env:PATH = "$PSScriptRoot\..\.tools\bin;$env:PATH"

View file

@ -1,3 +1,6 @@
# SdkTests do not currently work with globally installed CLI as they use dotnet-install.ps1 to install more runtimes
useInstalledDotNetCli="false"
# Working around issue https://github.com/dotnet/arcade/issues/7327
DisableNativeToolsetInstalls=true

16
eng/native.proj Normal file
View file

@ -0,0 +1,16 @@
<!-- Licensed to the .NET Foundation under one or more agreements. The .NET Foundation licenses this file to you under the MIT license. -->
<Project>
<PropertyGroup>
<Platform Condition="'$(Platform)'=='' Or $(Platform)=='AnyCPU'">$(Architecture)</Platform>
</PropertyGroup>
<Target Name="Build">
<MSBuild Projects="$(RepoRoot)Native.sln" Properties="Platform=$(Platform)" Targets="Restore;Build" />
</Target>
<Target Name="Test" />
<Target Name="Pack" />
<Target Name="Rebuild" />
<Target Name="IntegrationTest" />
<Target Name="PerformanceTest" />
</Project>

8
eng/version.csproj Normal file
View file

@ -0,0 +1,8 @@
<Project Sdk="Microsoft.NET.Sdk" ToolsVersion="15.0">
<PropertyGroup>
<TargetFramework>$(CoreSdkTargetFramework)</TargetFramework>
<NativeVersionFile>$(ArtifactsObjDir)sdk_version.h</NativeVersionFile>
</PropertyGroup>
<Target Name="GenerateSdkVersionFile" BeforeTargets="CoreCompile" DependsOnTargets="GenerateNativeVersionFile" />
</Project>

View file

@ -7,7 +7,11 @@
]
}
},
"native-tools": {
"cmake": "3.16.4"
},
"msbuild-sdks": {
"Microsoft.DotNet.Arcade.Sdk": "6.0.0-beta.21228.3"
"Microsoft.DotNet.Arcade.Sdk": "6.0.0-beta.21254.3",
"Microsoft.DotNet.CMake.Sdk": "6.0.0-beta.21253.2"
}
}

View file

@ -0,0 +1,39 @@
cmake_minimum_required(VERSION 3.15.5)
# Create project named finalizer, this will
# will generate Finalizer.vcxproj
project(Finalizer)
set(CMAKE_MACOSX_RPATH 1)
set(CMAKE_CXX_STANDARD 11)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
set(CMAKE_FIND_LIBRARY_SUFFIXES ".lib")
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} /SUBSYSTEM:WINDOWS /ENTRY:wmainCRTStartup")
# The WiX SDK is extracted from a NuGet package using an SDK .csproj (finalizer_shim)
# that copies the "lib" and "inc" folders to a stable location.
include_directories(../../artifacts/WixSdk/inc)
include_directories(../../artifacts/obj)
link_directories(../../artifacts/WixSdk/lib/${Platform})
add_compile_options(/MT)
add_executable(Finalizer
finalizer.cpp
native.rc
)
# These are normally part of a .vcxproj in Visual Studio, but
# appears to be missing when CMAKE generates a .vcxproj
# for arm64.
target_link_libraries(Finalizer shell32.lib)
target_link_libraries(Finalizer advapi32.lib)
target_link_libraries(Finalizer version.lib)
target_link_libraries(Finalizer msi.lib)
# Add WiX libraries
target_link_libraries(Finalizer wcautil.lib)
target_link_libraries(Finalizer dutil.lib)
install(TARGETS Finalizer)

211
src/finalizer/finalizer.cpp Normal file
View file

@ -0,0 +1,211 @@
// Copyright (c) .NET Foundation. All rights reserved.
// Licensed under the MIT license. See LICENSE file in the project root for full license information.
#include "precomp.h"
extern "C" HRESULT Initialize(int argc, wchar_t* argv[])
{
HRESULT hr = S_OK;
// We're not going to do any clever parsing. This is intended to be called from
// the standalone bundle only and there will only be two parameters:
// 1. The path of the log file, created by the bundle.
// 2. The dependent we're trying to clean up.
if (argc != 3)
{
return HRESULT_FROM_WIN32(ERROR_INVALID_COMMAND_LINE);
}
LogInitialize(::GetModuleHandleW(NULL));
#ifdef _DEBUG
LogSetLevel(REPORT_DEBUG, FALSE);
#else
LogSetLevel(REPORT_VERBOSE, FALSE); // FALSE means don't write an additional text line to the log saying the level changed
#endif
hr = LogOpen(NULL, argv[1], NULL, NULL, FALSE, TRUE, NULL);
ExitOnFailure(hr, "Failed to create log file.");
hr = RegInitialize();
ExitOnFailure(hr, "Failed to initialize the registry.");
hr = WiuInitialize();
ExitOnFailure(hr, "Failed to initialize Windows Installer.");
LExit:
return hr;
}
extern "C" HRESULT RemoveDependent(LPWSTR sczDependent, BOOL* pbRestartRequired)
{
HRESULT hr = S_OK;
HKEY hkInstallerDependenciesKey = NULL;
HKEY hkProviderKey = NULL;
HKEY hkDependentsKey = NULL;
LPWSTR sczProviderKey = NULL;
LPWSTR sczDependentsKey = NULL;
LPWSTR sczProductId = NULL;
LPWSTR sczProductName = NULL;
DWORD cSubKeys = 0;
DWORD dwExitCode = 0;
WIU_RESTART restart = WIU_RESTART_NONE;
// Optional workloads are always per-machine installs, so we don't need to check HKCU.
hr = RegOpen(HKEY_LOCAL_MACHINE, L"SOFTWARE\\Classes\\Installer\\Dependencies", KEY_READ, &hkInstallerDependenciesKey);
ExitOnFailure(hr, "Failed to read installer dependencies key.");
// This has to be an exhaustive search as we're not looking for a specific provider key, but for a specific dependent
// that could be registered against any provider key.
for (DWORD dwIndex = 0;; ++dwIndex)
{
// Get the next provider key name
hr = RegKeyEnum(hkInstallerDependenciesKey, dwIndex, &sczProviderKey);
if (E_NOMOREITEMS == hr)
{
hr = S_OK;
break;
}
ExitOnFailure(hr, "Failed to enumerate installer dependency provider keys.");
LogStringLine(REPORT_STANDARD, "Processing provider key: %ls", sczProviderKey);
hr = RegOpen(hkInstallerDependenciesKey, sczProviderKey, KEY_READ, &hkProviderKey);
ExitOnFailure(hr, "Unable to open provider key.");
// Open the dependents key with write permissions so we can modify it if it matches
// the target dependent value.
hr = RegOpen(hkProviderKey, L"Dependents", KEY_READ | KEY_WRITE, &hkDependentsKey);
if (E_FILENOTFOUND == hr)
{
// Providers can sometimes become orphaned duirng uninstalls. If there's no Dependents subkey, we just
// release the handle and continue to the next provider key.
hr = S_OK;
ReleaseRegKey(hkProviderKey);
continue;
}
ExitOnFailure(hr, "Unable to open dependents key.");
// Enumerate over all the dependent keys
for (DWORD dwDepdentsKeyIndex = 0;; ++dwDepdentsKeyIndex)
{
hr = RegKeyEnum(hkDependentsKey, dwDepdentsKeyIndex, &sczDependentsKey);
if (E_NOMOREITEMS == hr)
{
hr = S_OK;
break;
}
ExitOnFailure(hr, "Failed to read provider's dependent key.");
if (CSTR_EQUAL == ::CompareStringW(LOCALE_INVARIANT, 0, sczDependentsKey, -1, sczDependent, -1))
{
LogStringLine(REPORT_STANDARD, " Dependent match found: %ls", sczDependentsKey);
hr = RegDelete(hkDependentsKey, sczDependent, REG_KEY_DEFAULT, TRUE);
ExitOnFailure(hr, "Failed to delete dependent \"%ls\"", sczDependent);
LogStringLine(REPORT_STANDARD, " Dependent deleted");
// Reset the index since we're deleting keys while enumerating
dwDepdentsKeyIndex = dwDepdentsKeyIndex > 1 ? dwDepdentsKeyIndex-- : 0;
// Check if there are any subkeys remaining under the dependents key. If not, we
// can uninstall the MSI. We'll recheck the key again in case the MSI fails to clean up the
// provider key to make sure we don't have orphaned keys.
hr = RegQueryKey(hkDependentsKey, &cSubKeys, NULL);
ExitOnFailure(hr, "Failed to query dependents key.");
LogStringLine(REPORT_STANDARD, " Remaining dependents: %i", cSubKeys);
if (0 == cSubKeys)
{
// This was the final dependent, so now we can remove the installation if the provider wasn't corrupted and
// still contains the product ID.
hr = RegReadString(hkProviderKey, NULL, &sczProductId);
if (E_FILENOTFOUND == hr)
{
LogStringLine(REPORT_STANDARD, " No product ID found, provider key: %ls", sczProviderKey);
hr = S_OK;
break;
}
else
{
ExitOnFailure(hr, "Failed to read product ID.");
}
// Let's make sure the product is actually installed. The provider key for an MSI typically
// stores the ProductCode, DisplayName, and Version, but by calling into MsiGetProductInfo,
// we're doing an implicit detect and getting a property back.
hr = WiuGetProductInfo(sczProductId, L"ProductName", &sczProductName);
if (SUCCEEDED(hr))
{
// The provider key *should* have the ProductName and ProductVersion properties, but since
// we know it's installed, we just query the installer service.
MsiSetInternalUI(INSTALLUILEVEL_NONE, NULL);
hr = WiuConfigureProductEx(sczProductId, INSTALLLEVEL_DEFAULT, INSTALLSTATE_ABSENT, L"MSIFASTINSTALL=7 IGNOREDEPENDENCIES=ALL REBOOT=ReallySuppress", &restart);
LogStringLine(REPORT_STANDARD, " Uninstall of \"%ls\" (%ls%) exited with 0x%.8x", sczProductName, sczProductId, hr);
// Flag any reboot since we need to return that to the bundle.
if (WIU_RESTART_INITIATED == restart || WIU_RESTART_REQUIRED == restart)
{
LogStringLine(REPORT_STANDARD, " Reboot requested, deferring.");
*pbRestartRequired = TRUE;
}
// Reset potential failures so we can continue to remove as many dependents as possible.
hr = S_OK;
}
else if (HRESULT_FROM_WIN32(ERROR_UNKNOWN_PRODUCT) == hr || HRESULT_FROM_WIN32(ERROR_UNKNOWN_PROPERTY) == hr)
{
// Possibly a corrupted provider key that wasn't cleaned up. We'll just ignore it.
LogStringLine(REPORT_STANDARD, " Product is not installed, ProductCode:%ls, result: 0x%.8x", sczProductId, hr);
hr = S_OK;
}
}
}
}
ReleaseRegKey(hkDependentsKey);
ReleaseRegKey(hkProviderKey);
}
LExit:
ReleaseStr(sczProductName);
ReleaseStr(sczProductId);
ReleaseStr(sczProviderKey);
ReleaseStr(sczDependentsKey);
ReleaseRegKey(hkDependentsKey);
ReleaseRegKey(hkProviderKey);
ReleaseRegKey(hkInstallerDependenciesKey);
return hr;
}
int wmain(int argc, wchar_t* argv[])
{
HRESULT hr = S_OK;
DWORD dwExitCode = 0;
LPWSTR sczDependent = NULL;
BOOL bRestartRequired = FALSE;
hr = ::Initialize(argc, argv);
ExitOnFailure(hr, "Failed to initialize.");
sczDependent = argv[2];
hr = ::RemoveDependent(sczDependent, &bRestartRequired);
ExitOnFailure(hr, "Failed to remove dependent \"%ls\".", sczDependent);
if (bRestartRequired)
{
dwExitCode = ERROR_SUCCESS_REBOOT_REQUIRED;
}
LExit:
LogUninitialize(TRUE);
RegUninitialize();
WiuUninitialize();
return FAILED(hr) ? (int)hr : (int)dwExitCode;
}

View file

@ -0,0 +1,14 @@
<Project Sdk="Microsoft.DotNet.CMake.Sdk">
<PropertyGroup>
<CMakeLists>CMakeLists.txt</CMakeLists>
</PropertyGroup>
<!--
This will be passed through -D and referenced by the CMakeLists.txt to correctly resolve
the platform specific libs
-->
<ItemGroup>
<CMakeDefines Include="Platform" Value="$(Platform)" />
<!-- <CMakeNativeToolArguments Include="/bl:$(ArtifactsDir)native.binlog" /> -->
</ItemGroup>
</Project>

BIN
src/finalizer/native.rc Normal file

Binary file not shown.

26
src/finalizer/precomp.h Normal file
View file

@ -0,0 +1,26 @@
// Copyright (c) .NET Foundation. All rights reserved.
// Licensed under the MIT license. See LICENSE file in the project root for full license information.
#pragma once
#include <windows.h>
#include <winerror.h>
#include <iostream>
#include <errno.h>
#include <wchar.h>
#include <cwchar>
#include <winreg.h>
#include <msi.h>
// Configure some logging parameters for WiX
#define ExitTrace LogErrorString
#define ExitTrace1 LogErrorString
#define ExitTrace2 LogErrorString
#define ExitTrace3 LogErrorString
// Includes from WiX SDK
#include "dutil.h"
#include "regutil.h"
#include "logutil.h"
#include "strutil.h"
#include "wiutil.h"

View file

@ -0,0 +1,35 @@
<Project Sdk="Microsoft.NET.Sdk">
<!--
This is a shim project to restore the WiX library and copy out the *.lib and *.h files so
we can build the finalizer.
-->
<PropertyGroup>
<Platform Condition="'$(Platform)' == 'AnyCPU' Or '$(Platform)' == ''">$(Architecture)</Platform>
<TargetFramework>$(CoreSdkTargetFramework)</TargetFramework>
<GenerateRuntimeConfigurationFiles>true</GenerateRuntimeConfigurationFiles>
<CopyBuildOutputToPublishDirectory>false</CopyBuildOutputToPublishDirectory>
<ProduceReferenceAssembly>false</ProduceReferenceAssembly>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="WiX" Version="$(WixPackageVersion)" GeneratePathProperty="true" />
</ItemGroup>
<ItemGroup>
<NativeProjectReference Include="$(RepoRoot)src\finalizer\CMakeLists.txt" CMakeProject="$(RepoRoot)src\finalizer\finalizer.proj" BuildNative="true"/>
</ItemGroup>
<!-- This target needs to run before the native project reference is built. -->
<Target Name="CopySdk" AfterTargets="Restore" BeforeTargets="Build">
<ItemGroup>
<WixLib Include="$(WixSdkPath)vs2017\lib\**\*.*" />
<WixInclude Include="$(WixSdkPath)inc\**\*.*" />
</ItemGroup>
<!-- Copy all the lib files for x86, x64, and arm64 -->
<Copy SourceFiles="@(WixLib)" DestinationFiles="@(WixLib->'$(ArtifactsDir)WixSdk\lib\%(RecursiveDir)%(Filename)%(Extension)')" SkipUnchangedFiles="true" />
<Copy SourceFiles="@(WixInclude)" DestinationFolder="$(ArtifactsDir)WixSdk\inc" SkipUnchangedFiles="true" />
</Target>
<Import Project="ProjectReference.targets" Sdk="Microsoft.DotNet.CMake.Sdk" />
</Project>

View file

@ -27,6 +27,8 @@
<SdkGenerateBundlePowershellScript>$(MSBuildThisFileDirectory)packaging/windows/clisdk/generatebundle.ps1</SdkGenerateBundlePowershellScript>
<GenerateNupkgPowershellScript>$(MSBuildThisFileDirectory)packaging/windows/clisdk/generatenupkg.ps1</GenerateNupkgPowershellScript>
<FinalizerExe>$(ArtifactsDir)bin/finalizer/$(Architecture)/$(Configuration)/bin/finalizer.exe</FinalizerExe>
<ToolsetInstallerNuspecFile>$(MSBuildThisFileDirectory)packaging/windows/clisdk/VS.Redist.Common.NetCore.Toolset.nuspec</ToolsetInstallerNuspecFile>
<ToolsetInstallerNupkgFile>$(ArtifactsNonShippingPackagesDir)VS.Redist.Common.NetCore.Toolset.$(Architecture).$(FullNugetVersion).nupkg</ToolsetInstallerNupkgFile>
<SdkPlaceholderInstallerNuspecFile>$(MSBuildThisFileDirectory)packaging/windows/clisdk/VS.Redist.Common.NetCore.SdkPlaceholder.nuspec</SdkPlaceholderInstallerNuspecFile>
@ -345,6 +347,7 @@
'$(DownloadsFolder)$(DownloadedArm64NetCoreAppHostPackInstallerFileName)' ^
'$(DownloadsFolder)$(DownloadedAspNetTargetingPackInstallerFileName)' ^
'$(DownloadsFolder)$(DownloadedWindowsDesktopTargetingPackInstallerFileName)' ^
'$(FinalizerExe)' ^
'$(LatestTemplateMsiInstallerFile)' ^
'$(ManifestsMsiInstallerFile)' ^
'$(CombinedFrameworkSdkHostMSIInstallerFile)' ^

View file

@ -194,6 +194,20 @@
<?elseif $(var.Platform)=arm64?>
<PackageGroupRef Id="PG_AspNetCoreSharedFramework_arm64"/>
<?endif?>
<!--
The finalizer is not an actual installation package. We "detect" the EXE
based on the action the bundle is performing to ensure that it runs the uninstall
command only when the bundle is being removed. The package is always installable because the bundle
will remove (execute the uninstall command) the package if it is not installable when then bundle is
being installed.
-->
<ExePackage SourceFile="$(var.FinalizerExeSourcePath)"
DetectCondition="WixBundleAction >= 3"
Id="Finalizer"
InstallCondition="WixBundleAction >= 4"
UninstallCommand="&quot;[WixBundleLog_Finalizer]&quot; $(var.SdkDependent)"
Vital="no" />
</Chain>
</Bundle>

View file

@ -16,6 +16,7 @@ param(
[Parameter(Mandatory=$true)][string]$Arm64NetCoreAppHostPackMSIFile,
[Parameter(Mandatory=$true)][string]$AspNetTargetingPackMSIFile,
[Parameter(Mandatory=$true)][string]$WindowsDesktopTargetingPackMSIFile,
[Parameter(Mandatory=$true)][string]$FinalizerExe,
[Parameter(Mandatory=$true)][string]$TemplatesMSIFile,
[Parameter(Mandatory=$true)][string]$ManifestsMSIFile,
[Parameter(Mandatory=$true)][string]$DotnetBundleOutput,
@ -63,6 +64,7 @@ function RunCandleForBundle
-dNetStandardTargetingPackMsiSourcePath="$NetStandardTargetingPackMSIFile" `
-dAspNetTargetingPackMsiSourcePath="$AspNetTargetingPackMSIFile" `
-dWindowsDesktopTargetingPackMsiSourcePath="$WindowsDesktopTargetingPackMSIFile" `
-dFinalizerExeSourcePath="$FinalizerExe" `
-dTemplatesMsiSourcePath="$TemplatesMSIFile" `
-dManifestsMsiSourcePath="$ManifestsMSIFile" `
-dWinFormsAndWpfVersion="$WindowsDesktopVersion" `

View file

@ -45,4 +45,6 @@
<?define DependencyKey = "$(var.DependencyKeyName)_$(var.SDKBundleVersion)_$(var.Platform)"?>
<?define DependencyKeyId = "$(var.DependencyKey)" ?>
<!-- The dependent value associated with this SDK when creating reference counts for optional workloads. -->
<?define SdkDependent = "Microsoft.NET.SDK,$(var.SDKBundleVersion),$(var.Platform)"?>
</Include>