diff --git a/.vsts-ci.yml b/.vsts-ci.yml index abfd68fda..eb2acb8c9 100644 --- a/.vsts-ci.yml +++ b/.vsts-ci.yml @@ -20,6 +20,8 @@ variables: - name: PostBuildSign value: true - ${{ if and(ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest')) }}: + - name: Codeql.Enabled + value: true - group: DotNet-DotNetCli-Storage - group: DotNet-Installer-SDLValidation-Params - name: _PublishUsingPipelines diff --git a/Directory.Build.props b/Directory.Build.props index b87eeccca..2b9d318a6 100644 --- a/Directory.Build.props +++ b/Directory.Build.props @@ -9,7 +9,7 @@ $([System.Runtime.InteropServices.RuntimeInformation]::ProcessArchitecture.ToString().ToLowerInvariant()) - $(BuildArchitecture) + $(BuildArchitecture) $(BuildArchitecture) $(BuildArchitecture) x64 diff --git a/Native.sln b/Native.sln index 7ce79b609..29bd74903 100644 --- a/Native.sln +++ b/Native.sln @@ -12,9 +12,11 @@ Global Debug|x86 = Debug|x86 Debug|x64 = Debug|x64 Debug|arm64 = Debug|arm64 + Debug|arm = Debug|arm Release|x86 = Release|x86 Release|x64 = Release|x64 Release|arm64 = Release|arm64 + Release|arm = Release|arm EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution {688E2883-C5A9-4D66-A207-772C9160989C}.Debug|x86.ActiveCfg = Debug|x86 @@ -23,12 +25,16 @@ Global {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}.Debug|arm.ActiveCfg = Debug|arm + {688E2883-C5A9-4D66-A207-772C9160989C}.Debug|arm.Build.0 = Debug|arm {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 + {688E2883-C5A9-4D66-A207-772C9160989C}.Release|arm.ActiveCfg = Release|arm + {688E2883-C5A9-4D66-A207-772C9160989C}.Release|arm.Build.0 = Release|arm EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/NuGet.config b/NuGet.config index dbd29f96e..770df6dcb 100644 --- a/NuGet.config +++ b/NuGet.config @@ -5,6 +5,20 @@ + + + + + + + + + + + + + + @@ -26,6 +40,8 @@ + + diff --git a/README.md b/README.md index 686aa0dd7..808010978 100644 --- a/README.md +++ b/README.md @@ -43,8 +43,8 @@ Please see the [dotnet/source-build](https://github.com/dotnet/source-build) rep ## Support -.NET Source-Build is supported on the oldest available .NET SDK feature update, and on Linux only. -For example, if both .NET 6.0.1XX and 6.0.2XX feature updates are available from [dotnet.microsoft.com](https://dotnet.microsoft.com/en-us/download/dotnet/6.0), Source-Build will only support 6.0.1XX. +.NET Source-Build is supported on the oldest available .NET SDK feature update for each major release, and on Linux only. +For example, if .NET 6.0.1xx, 6.0.2xx, and 7.0.1xx feature updates are available from [dotnet.microsoft.com](https://dotnet.microsoft.com/en-us/download/dotnet/6.0), Source-Build will support 6.0.1xx and 7.0.1xx. For the latest information about Source-Build support for new .NET versions, please check our [GitHub Discussions page](https://github.com/dotnet/source-build/discussions) for announcements. ## Prerequisites @@ -79,7 +79,7 @@ The dependencies for building .NET from source can be found [here](https://githu ``` This builds the entire .NET SDK from source. - The resulting SDK is placed at `artifacts/x64/Release/dotnet-sdk-6.0.100-fedora.33-x64.tar.gz`. + The resulting SDK is placed at `artifacts/x64/Release/dotnet-sdk-7.0.100-your-RID.tar.gz`. Optionally add the `--online` flag to add online NuGet restore sources to the build. This is useful for testing unsupported releases that don't yet build without downloading pre-built binaries from the internet. @@ -90,7 +90,7 @@ The dependencies for building .NET from source can be found [here](https://githu ```bash mkdir -p $HOME/dotnet - tar zxf artifacts/x64/Release/dotnet-sdk-6.0.100-fedora.33-x64.tar.gz -C $HOME/dotnet + tar zxf artifacts/x64/Release/dotnet-sdk-7.0.100-your-RID.tar.gz -C $HOME/dotnet ln -s $HOME/dotnet/dotnet /usr/bin/dotnet ``` diff --git a/eng/Build.props b/eng/Build.props index 4df683bab..874132e36 100644 --- a/eng/Build.props +++ b/eng/Build.props @@ -1,7 +1,7 @@ - diff --git a/eng/Signing.props b/eng/Signing.props index 3a2373f9e..0d49f78d1 100644 --- a/eng/Signing.props +++ b/eng/Signing.props @@ -7,12 +7,9 @@ - - - - - - + + + diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 33c6137b1..495bd38bc 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -52,34 +52,34 @@ https://github.com/dotnet/runtime 5147f6fc78520db322118cc8287651cb54a506df - - https://github.com/dotnet/aspnetcore - 2651d9202b0bf5fdd081930cd7a4438ced351410 + + https://dev.azure.com/dnceng/internal/_git/dotnet-aspnetcore + bb01bbf4433e27289b99001b7de6a582879d1835 - - https://github.com/dotnet/aspnetcore - 2651d9202b0bf5fdd081930cd7a4438ced351410 - - - https://github.com/dotnet/aspnetcore - 2651d9202b0bf5fdd081930cd7a4438ced351410 + + https://dev.azure.com/dnceng/internal/_git/dotnet-aspnetcore + bb01bbf4433e27289b99001b7de6a582879d1835 - - https://github.com/dotnet/aspnetcore - 2651d9202b0bf5fdd081930cd7a4438ced351410 + + https://dev.azure.com/dnceng/internal/_git/dotnet-aspnetcore + bb01bbf4433e27289b99001b7de6a582879d1835 - - https://github.com/dotnet/aspnetcore - 2651d9202b0bf5fdd081930cd7a4438ced351410 + + https://dev.azure.com/dnceng/internal/_git/dotnet-aspnetcore + bb01bbf4433e27289b99001b7de6a582879d1835 - - https://github.com/dotnet/aspnetcore - 2651d9202b0bf5fdd081930cd7a4438ced351410 + + https://dev.azure.com/dnceng/internal/_git/dotnet-aspnetcore + bb01bbf4433e27289b99001b7de6a582879d1835 - - https://github.com/dotnet/aspnetcore - 2651d9202b0bf5fdd081930cd7a4438ced351410 + + https://dev.azure.com/dnceng/internal/_git/dotnet-aspnetcore + bb01bbf4433e27289b99001b7de6a582879d1835 + + + https://dev.azure.com/dnceng/internal/_git/dotnet-aspnetcore + bb01bbf4433e27289b99001b7de6a582879d1835 https://github.com/dotnet/test-templates @@ -133,9 +133,9 @@ f07ccb1bc4325861cb4306733f59b23f6d4344f7 - + https://github.com/microsoft/vstest - 576a7cc1b259976393cf576a6a9c5df967bb2b7d + c02ece877c62577810f893c44279ce79af820112 @@ -154,9 +154,9 @@ 20ce296d6b3f4e63a511321c7e1a2f69a4ee63ef - + https://github.com/nuget/nuget.client - 1a082949ae5b6da7ca2cce047396c53ae1afdde7 + 125f673fd1cdb3cc012f62aa3ce764d2460b89eb @@ -201,9 +201,9 @@ https://github.com/dotnet/arcade f36ea231c234560514ede4c2747897a737ced28f - + https://github.com/dotnet/source-build-reference-packages - 8366acfc3e0660ceef6bddbe7794044e5d503521 + 4f5672e90b7f908d96aad61a40b0e9b352518b1c diff --git a/eng/Versions.props b/eng/Versions.props index 9cd63ca22..86478c56c 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -16,7 +16,7 @@ $(VersionMajor).$(VersionMinor) $(MajorMinorVersion).$(VersionSDKMinor) - false + true release @@ -31,11 +31,11 @@ - 7.0.0-rtm.22476.8 + 7.0.0-rtm.22518.7 - 7.0.0-rtm.22476.6 + 7.0.0-rtm.22518.2 @@ -50,46 +50,46 @@ - 7.0.0-rtm.22504.29 - 7.0.0-rtm.22504.29 - 7.0.0-rtm.22504.29 - 7.0.0-rtm.22504.29 - 7.0.0-rtm.22504.29 - 7.0.0-rtm.22504.29 - 7.0.0-rtm.22504.29 + 7.0.0 + 7.0.0 + 7.0.0-rtm.22518.19 + 7.0.0-rtm.22518.19 + 7.0.0-rtm.22518.19 + 7.0.0-rtm.22518.19 + 7.0.0-rtm.22518.19 0.2.0 - 7.0.100-rtm.22506.24 - 7.0.100-rtm.22506.24 - 7.0.100-rtm.22506.24 + 7.0.100 + 7.0.100-rtm.22521.7 + 7.0.100-rtm.22521.7 $(MicrosoftNETSdkPackageVersion) $(MicrosoftNETSdkPackageVersion) $(MicrosoftNETSdkPackageVersion) - 7.0.0-rtm.22505.15 + 7.0.0 - 7.0.0-rtm.22505.15 - 7.0.0-rtm.22505.15 - 7.0.0-rtm.22505.15 - 7.0.0-rtm.22505.15 - 7.0.0-rtm.22505.15 - 7.0.0-rtm.22505.15 + 7.0.0-rtm.22518.5 + 7.0.0-rtm.22518.5 + 7.0.0 + 7.0.0 + 7.0.0 + 7.0.0 2.1.0 - 7.0.0-rtm.22478.5 - 7.0.0-rtm.22478.5 - 7.0.0-rtm.22478.5 - 7.0.0-rtm.22478.5 + 7.0.0-rtm.22519.1 + 7.0.0-rtm.22519.1 + 7.0.0 + 7.0.0 @@ -171,7 +171,7 @@ 2.2.0-beta.19072.10 2.0.0 - 17.4.0-release-20220926-01 + 17.4.0-release-20221019-01 @@ -197,13 +197,13 @@ - 7.0.100-rc.1 - 7.0.0-rc.1.6430 - 33.0.0-rc.1.136 - 15.4.1006-rc.1 - 15.4.1006-rc.1 - 12.3.1006-rc.1 - 15.4.1006-rc.1 + 7.0.100 + 7.0.49 + 33.0.4 + 16.0.1478 + 15.4.2372 + 12.3.2372 + 16.0.1478 $(MicrosoftNETCoreAppRefPackageVersion) 7.0.0-rtm.22476.2 7.0.0-rtm.22476.2 diff --git a/eng/source-build-tarball-build-official.yml b/eng/source-build-tarball-build-official.yml index a230a4d7c..5d396baab 100644 --- a/eng/source-build-tarball-build-official.yml +++ b/eng/source-build-tarball-build-official.yml @@ -4,7 +4,19 @@ resources: pipelines: - pipeline: installer-build-resource source: dotnet-installer-official-ci - trigger: true + trigger: + branches: + include: + - main + - release/* + - internal/release/* + exclude: + - release/6.0.3xx + - internal/release/6.0.3xx + - release/6.0.4xx + - internal/release/6.0.4xx + stages: + - build stages: - stage: build diff --git a/src/SourceBuild/Arcade/eng/common/templates/job/source-build-create-tarball.yml b/src/SourceBuild/Arcade/eng/common/templates/job/source-build-create-tarball.yml index cffdf6bdb..ac6d73016 100644 --- a/src/SourceBuild/Arcade/eng/common/templates/job/source-build-create-tarball.yml +++ b/src/SourceBuild/Arcade/eng/common/templates/job/source-build-create-tarball.yml @@ -6,11 +6,20 @@ jobs: displayName: Source-Build Create Tarball pool: ${{ if eq(variables['System.TeamProject'], 'public') }}: - name: NetCore-Svc-Public - demands: ImageOverride -equals Build.Ubuntu.1804.Amd64.Open + ${{ if in(variables['Build.Reason'], 'PullRequest') }}: + name: NetCore-Public-XL + demands: ImageOverride -equals Build.Ubuntu.1804.Amd64.Open + ${{ else }}: + name: NetCore-Svc-Public + demands: ImageOverride -equals Build.Ubuntu.1804.Amd64.Open ${{ if eq(variables['System.TeamProject'], 'internal') }}: - name: NetCore1ESPool-Svc-Internal - demands: ImageOverride -equals Build.Ubuntu.1804.Amd64 + ${{ if in(variables['Build.Reason'], 'PullRequest') }}: + name: NetCore1ESPool-Internal-XL + demands: ImageOverride -equals Build.Ubuntu.1804.Amd64 + ${{ else }}: + name: NetCore1ESPool-Svc-Internal + demands: ImageOverride -equals Build.Ubuntu.1804.Amd64 + variables: - name: _BuildConfig value: Release diff --git a/src/SourceBuild/Arcade/eng/common/templates/job/source-build-run-tarball-build.yml b/src/SourceBuild/Arcade/eng/common/templates/job/source-build-run-tarball-build.yml index 60b39b652..06bfd2b15 100644 --- a/src/SourceBuild/Arcade/eng/common/templates/job/source-build-run-tarball-build.yml +++ b/src/SourceBuild/Arcade/eng/common/templates/job/source-build-run-tarball-build.yml @@ -17,10 +17,13 @@ parameters: poolInternalAmd64: name: NetCore1ESPool-Svc-Internal demands: ImageOverride -equals Build.Ubuntu.1804.Amd64 + poolInternalAmd64PR: + name: NetCore1ESPool-Internal-XL + demands: ImageOverride -equals Build.Ubuntu.1804.Amd64 poolInternalArm64: name: Docker-Linux-Arm-Internal poolPublicAmd64: - name: NetCore-Svc-Public + name: NetCore-Public-XL demands: ImageOverride -equals Build.Ubuntu.1804.Amd64.Open jobs: @@ -68,24 +71,24 @@ jobs: ${{ if eq(variables['System.TeamProject'], 'public') }}: ${{ parameters.poolPublicAmd64 }} ${{ if eq(variables['System.TeamProject'], 'internal') }}: - ${{ parameters.poolInternalAmd64 }} + ${{ if in(variables['Build.Reason'], 'PullRequest') }}: + ${{ parameters.poolInternalAmd64PR }} + ${{ else }}: + ${{ parameters.poolInternalAmd64 }} -- ${{ if eq(variables['System.TeamProject'], 'internal') }}: +- ${{ if and(eq(variables['System.TeamProject'], 'internal'), ne(variables['Build.Reason'], 'PullRequest')) }}: - template: /src/SourceBuild/Arcade/eng/common/templates/job/source-build-build-tarball.yml parameters: architecture: arm64 dependsOn: ${{ parameters.dependsOn }} - ${{ if in(variables['Build.Reason'], 'PullRequest') }}: - excludeSdkContentTests: true installerBuildResourceId: ${{ parameters.installerBuildResourceId }} matrix: - ${{ if ne(variables['Build.Reason'], 'PullRequest') }}: - Debian11-Offline: - _BootstrapPrep: true - _Container: ${{ parameters.debian11Arm64Container }} - _EnablePoison: false - _ExcludeOmniSharpTests: false - _RunOnline: false + Debian11-Offline: + _BootstrapPrep: true + _Container: ${{ parameters.debian11Arm64Container }} + _EnablePoison: false + _ExcludeOmniSharpTests: false + _RunOnline: false name: Build_Tarball_arm64 pool: ${{ parameters.poolInternalArm64 }} diff --git a/src/SourceBuild/tarball/content/Directory.Build.props b/src/SourceBuild/tarball/content/Directory.Build.props index 860785575..3ffe8c56a 100644 --- a/src/SourceBuild/tarball/content/Directory.Build.props +++ b/src/SourceBuild/tarball/content/Directory.Build.props @@ -17,7 +17,7 @@ $([System.Runtime.InteropServices.RuntimeInformation]::ProcessArchitecture.ToString().ToLowerInvariant()) - $(BuildArchitecture) + $(BuildArchitecture) $(BuildArchitecture) $(BuildArchitecture) x64 diff --git a/src/SourceBuild/tarball/content/global.json b/src/SourceBuild/tarball/content/global.json index 8d9568376..1bf480e4e 100644 --- a/src/SourceBuild/tarball/content/global.json +++ b/src/SourceBuild/tarball/content/global.json @@ -1,6 +1,6 @@ { "tools": { - "dotnet": "7.0.100-rc.2.22477.23" + "dotnet": "7.0.100" }, "msbuild-sdks": { "Microsoft.Build.CentralPackageVersions": "2.0.1", diff --git a/src/SourceBuild/tarball/content/repos/Directory.Build.targets b/src/SourceBuild/tarball/content/repos/Directory.Build.targets index 9a61647b4..7bf88fdd6 100644 --- a/src/SourceBuild/tarball/content/repos/Directory.Build.targets +++ b/src/SourceBuild/tarball/content/repos/Directory.Build.targets @@ -85,11 +85,11 @@ NewText="/p:RepoRoot="$repo_root/"" /> - + Outputs="$(RepoCompletedSemaphorePath)AddNoWarns.complete" > + CS0618 diff --git a/src/SourceBuild/tarball/content/repos/known-good.proj b/src/SourceBuild/tarball/content/repos/known-good.proj index 50720cc4c..6f96a2fdf 100644 --- a/src/SourceBuild/tarball/content/repos/known-good.proj +++ b/src/SourceBuild/tarball/content/repos/known-good.proj @@ -18,7 +18,8 @@ - + + diff --git a/src/SourceBuild/tarball/content/repos/razor-compiler.proj b/src/SourceBuild/tarball/content/repos/razor-compiler.proj index f47d22c98..a56aa1ea4 100644 --- a/src/SourceBuild/tarball/content/repos/razor-compiler.proj +++ b/src/SourceBuild/tarball/content/repos/razor-compiler.proj @@ -7,6 +7,10 @@ $(ProjectDirectory)global.json $(ProjectDirectory)NuGet.config false + + + NU1507 diff --git a/src/SourceBuild/tarball/content/repos/runtime.common.props b/src/SourceBuild/tarball/content/repos/runtime.common.props index 3269a3f63..cb02932f9 100644 --- a/src/SourceBuild/tarball/content/repos/runtime.common.props +++ b/src/SourceBuild/tarball/content/repos/runtime.common.props @@ -13,7 +13,7 @@ $(StandardSourceBuildArgs.Replace('-bl', '-nobl')) $(StandardSourceBuildCommand) $(BuildCommandArgs) - $(ArmEnvironmentVariables) $(StandardSourceBuildCommand) $(BuildCommandArgs) + $(ArmEnvironmentVariables) $(StandardSourceBuildCommand) $(BuildCommandArgs) $(ProjectDirectory)/clean$(ShellExtension) diff --git a/src/SourceBuild/tarball/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/DotNetHelper.cs b/src/SourceBuild/tarball/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/DotNetHelper.cs index ae5508aa4..921ab1f97 100644 --- a/src/SourceBuild/tarball/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/DotNetHelper.cs +++ b/src/SourceBuild/tarball/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/DotNetHelper.cs @@ -96,7 +96,7 @@ internal class DotNetHelper } } - public void ExecuteCmd(string args, string? workingDirectory = null, Action? additionalProcessConfigCallback = null, int expectedExitCode = 0, int millisecondTimeout = -1) + public void ExecuteCmd(string args, string? workingDirectory = null, Action? additionalProcessConfigCallback = null, int? expectedExitCode = 0, int millisecondTimeout = -1) { (Process Process, string StdOut, string StdErr) executeResult = ExecuteHelper.ExecuteProcess( DotNetPath, @@ -105,7 +105,9 @@ internal class DotNetHelper configure: (process) => configureProcess(process, workingDirectory), millisecondTimeout: millisecondTimeout); - ExecuteHelper.ValidateExitCode(executeResult, expectedExitCode); + if (expectedExitCode != null) { + ExecuteHelper.ValidateExitCode(executeResult, (int) expectedExitCode); + } void configureProcess(Process process, string? workingDirectory) { diff --git a/src/SourceBuild/tarball/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/DotNetWatchTests.cs b/src/SourceBuild/tarball/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/DotNetWatchTests.cs index f2dc2a75b..57b4e40b5 100644 --- a/src/SourceBuild/tarball/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/DotNetWatchTests.cs +++ b/src/SourceBuild/tarball/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/DotNetWatchTests.cs @@ -13,20 +13,18 @@ public class DotNetWatchTests : SmokeTests { public DotNetWatchTests(ITestOutputHelper outputHelper) : base(outputHelper) { } - // TODO: Re-enable https://github.com/dotnet/source-build/issues/2961 - // [Fact] + [Fact] public void WatchTests() { string projectDirectory = DotNetHelper.ExecuteNew(DotNetTemplate.Console.GetName(), nameof(DotNetWatchTests)); bool outputChanged = false; - // We expect an exit code of 143 (128 + 15, i.e. SIGTERM) because we are killing the process manually DotNetHelper.ExecuteCmd( "watch run", workingDirectory: projectDirectory, additionalProcessConfigCallback: processConfigCallback, - expectedExitCode: 143, - millisecondTimeout: 30000); + expectedExitCode: null, // The exit code does not reflect whether or not dotnet watch is working properly + millisecondTimeout: 60000); Assert.True(outputChanged); @@ -53,7 +51,7 @@ public class DotNetWatchTests : SmokeTests { outputChanged = true; OutputHelper.WriteLine("Successfully re-ran program after code change."); - ExecuteHelper.ExecuteProcessValidateExitCode("kill", $"-s TERM {process.Id}", OutputHelper); + process.Kill(true); } }); } diff --git a/src/SourceBuild/tarball/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/ExecuteHelper.cs b/src/SourceBuild/tarball/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/ExecuteHelper.cs index 62e1eb594..dbaaa8a80 100644 --- a/src/SourceBuild/tarball/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/ExecuteHelper.cs +++ b/src/SourceBuild/tarball/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/ExecuteHelper.cs @@ -70,7 +70,7 @@ internal static class ExecuteHelper if (!process.HasExited) { - outputHelper.WriteLine($"Killing: {fileName} {args}"); + outputHelper.WriteLine($"Process did not exit. Killing {fileName} {args} after waiting {millisecondTimeout} milliseconds."); process.Kill(true); process.WaitForExit(); } diff --git a/src/SourceBuild/tarball/content/tools-local/init-build.proj b/src/SourceBuild/tarball/content/tools-local/init-build.proj index 701f76c0c..b2c3beed1 100644 --- a/src/SourceBuild/tarball/content/tools-local/init-build.proj +++ b/src/SourceBuild/tarball/content/tools-local/init-build.proj @@ -138,7 +138,7 @@ - + diff --git a/src/SourceBuild/tarball/patches/aspnetcore/0001-Disable-warning-CS0618.patch b/src/SourceBuild/tarball/patches/aspnetcore/0001-Disable-warning-CS0618.patch deleted file mode 100644 index c2e2eedf7..000000000 --- a/src/SourceBuild/tarball/patches/aspnetcore/0001-Disable-warning-CS0618.patch +++ /dev/null @@ -1,25 +0,0 @@ -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: Logan Bussell -Date: Thu, 12 May 2022 14:32:59 -0700 -Subject: [PATCH] Disable warning CS0618 - -This is needed because IOperation.Children is deprecated in -Microsoft.CodeAnalysis 4.3.0, but aspnetcore references version 4.2.0. - -Requires https://github.com/dotnet/source-build/issues/2482 in order to eliminate this patch ---- - .../src/Microsoft.AspNetCore.Mvc.Api.Analyzers.csproj | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/src/Mvc/Mvc.Api.Analyzers/src/Microsoft.AspNetCore.Mvc.Api.Analyzers.csproj b/src/Mvc/Mvc.Api.Analyzers/src/Microsoft.AspNetCore.Mvc.Api.Analyzers.csproj -index 0b94ad2a8f..1b5cb9d907 100644 ---- a/src/Mvc/Mvc.Api.Analyzers/src/Microsoft.AspNetCore.Mvc.Api.Analyzers.csproj -+++ b/src/Mvc/Mvc.Api.Analyzers/src/Microsoft.AspNetCore.Mvc.Api.Analyzers.csproj -@@ -9,6 +9,7 @@ - false - false - $(MSBuildProjectName).nuspec -+ $(NoWarn);CS0618 - - - diff --git a/src/SourceBuild/tarball/patches/aspnetcore/0001-ResolvePackageFileConflicts-workaround.patch b/src/SourceBuild/tarball/patches/aspnetcore/0001-ResolvePackageFileConflicts-workaround.patch new file mode 100644 index 000000000..ab355630e --- /dev/null +++ b/src/SourceBuild/tarball/patches/aspnetcore/0001-ResolvePackageFileConflicts-workaround.patch @@ -0,0 +1,23 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: MichaelSimons +Date: Fri, 11 Nov 2022 21:10:54 +0000 +Subject: [PATCH] ResolvePackageFileConflicts workaround + +--- + .../App.Runtime/src/Microsoft.AspNetCore.App.Runtime.csproj | 3 +++ + 1 file changed, 3 insertions(+) + +diff --git a/src/Framework/App.Runtime/src/Microsoft.AspNetCore.App.Runtime.csproj b/src/Framework/App.Runtime/src/Microsoft.AspNetCore.App.Runtime.csproj +index 3b5d2ae950..f92fb421fe 100644 +--- a/src/Framework/App.Runtime/src/Microsoft.AspNetCore.App.Runtime.csproj ++++ b/src/Framework/App.Runtime/src/Microsoft.AspNetCore.App.Runtime.csproj +@@ -253,6 +253,9 @@ This package is an internal implementation of the .NET Core SDK and is not meant + + + ++ ++ ++ + + + diff --git a/src/SourceBuild/tarball/patches/command-line-api/0001-Update-projects-to-net7.0-TFM-with-shared-property.patch b/src/SourceBuild/tarball/patches/command-line-api/0001-Update-projects-to-net7.0-TFM-with-shared-property.patch deleted file mode 100644 index d875d0aeb..000000000 --- a/src/SourceBuild/tarball/patches/command-line-api/0001-Update-projects-to-net7.0-TFM-with-shared-property.patch +++ /dev/null @@ -1,268 +0,0 @@ -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: Logan Bussell -Date: Tue, 19 Jul 2022 14:47:28 -0700 -Subject: [PATCH] Update projects to net7.0 TFM with shared property, Only enable trimming for .NET Core - -Backport PR: https://github.com/dotnet/command-line-api/pull/1803 ---- - Directory.Build.props | 1 + - global.json | 7 ++++--- - .../System.CommandLine.ApiCompatibility.Tests.csproj | 2 +- - .../System.CommandLine.Benchmarks.csproj | 4 ++-- - .../System.CommandLine.DragonFruit.Tests.csproj | 2 +- - .../System.CommandLine.Generator.Tests.csproj | 2 +- - .../System.CommandLine.Hosting.Tests.csproj | 2 +- - .../System.CommandLine.NamingConventionBinder.Tests.csproj | 2 +- - .../System.CommandLine.Rendering.Tests.csproj | 2 +- - .../EndToEndTestApp/EndToEndTestApp.csproj | 2 +- - .../dotnet-suggest.Tests.csproj | 2 +- - src/System.CommandLine.Suggest/dotnet-suggest.csproj | 2 +- - .../System.CommandLine.Tests.csproj | 2 +- - .../TestApps/NativeAOT/NativeAOT.csproj | 4 ++-- - .../TestApps/Trimming/Trimming.csproj | 4 ++-- - src/System.CommandLine/System.CommandLine.csproj | 7 +++++-- - 16 files changed, 26 insertions(+), 21 deletions(-) - -diff --git a/Directory.Build.props b/Directory.Build.props -index c0c5f79a..901c57c7 100644 ---- a/Directory.Build.props -+++ b/Directory.Build.props -@@ -9,6 +9,7 @@ - $(NoWarn);CS8714;CS8765;CS8600;CS8601;CS8602;CS8603;CS8604 - MIT - 10.0 -+ net7.0 - - - -diff --git a/global.json b/global.json -index 1c6fd268..f5bec611 100644 ---- a/global.json -+++ b/global.json -@@ -1,12 +1,13 @@ - { - "tools": { -- "dotnet": "6.0.100", -+ "dotnet": "7.0.100-preview.6.22352.1", - "runtimes": { - "dotnet": [ -- "5.0.10" -+ "5.0.17", -+ "6.0.7" - ] - }, -- "xcopy-msbuild": "16.10.0-preview2" -+ "xcopy-msbuild": "17.1.0" - }, - "msbuild-sdks": { - "Microsoft.DotNet.Arcade.Sdk": "7.0.0-beta.22168.2" -diff --git a/src/System.CommandLine.ApiCompatibility.Tests/System.CommandLine.ApiCompatibility.Tests.csproj b/src/System.CommandLine.ApiCompatibility.Tests/System.CommandLine.ApiCompatibility.Tests.csproj -index 30bcd139..4cc48fde 100644 ---- a/src/System.CommandLine.ApiCompatibility.Tests/System.CommandLine.ApiCompatibility.Tests.csproj -+++ b/src/System.CommandLine.ApiCompatibility.Tests/System.CommandLine.ApiCompatibility.Tests.csproj -@@ -1,7 +1,7 @@ - - - -- net6.0 -+ $(TargetFrameworkForNETSDK) - false - - -diff --git a/src/System.CommandLine.Benchmarks/System.CommandLine.Benchmarks.csproj b/src/System.CommandLine.Benchmarks/System.CommandLine.Benchmarks.csproj -index e54aabc4..185ba62a 100644 ---- a/src/System.CommandLine.Benchmarks/System.CommandLine.Benchmarks.csproj -+++ b/src/System.CommandLine.Benchmarks/System.CommandLine.Benchmarks.csproj -@@ -9,8 +9,8 @@ - false - - -- net461;net5.0;net6.0; -- net5.0;net6.0; -+ net461;net5.0;net6.0;net7.0 -+ net5.0;net6.0;net7.0 - - - False -diff --git a/src/System.CommandLine.DragonFruit.Tests/System.CommandLine.DragonFruit.Tests.csproj b/src/System.CommandLine.DragonFruit.Tests/System.CommandLine.DragonFruit.Tests.csproj -index 7eee0b38..e504f7e8 100644 ---- a/src/System.CommandLine.DragonFruit.Tests/System.CommandLine.DragonFruit.Tests.csproj -+++ b/src/System.CommandLine.DragonFruit.Tests/System.CommandLine.DragonFruit.Tests.csproj -@@ -1,6 +1,6 @@ -  - -- net6.0 -+ $(TargetFrameworkForNETSDK) - AutoGeneratedProgram - - true -diff --git a/src/System.CommandLine.Generator.Tests/System.CommandLine.Generator.Tests.csproj b/src/System.CommandLine.Generator.Tests/System.CommandLine.Generator.Tests.csproj -index a423eb1e..20f0f410 100644 ---- a/src/System.CommandLine.Generator.Tests/System.CommandLine.Generator.Tests.csproj -+++ b/src/System.CommandLine.Generator.Tests/System.CommandLine.Generator.Tests.csproj -@@ -1,6 +1,6 @@ -  - -- net6.0 -+ $(TargetFrameworkForNETSDK) - $(TargetFrameworks);net462 - true - true -diff --git a/src/System.CommandLine.Hosting.Tests/System.CommandLine.Hosting.Tests.csproj b/src/System.CommandLine.Hosting.Tests/System.CommandLine.Hosting.Tests.csproj -index 328b4e12..8e2cd6ea 100644 ---- a/src/System.CommandLine.Hosting.Tests/System.CommandLine.Hosting.Tests.csproj -+++ b/src/System.CommandLine.Hosting.Tests/System.CommandLine.Hosting.Tests.csproj -@@ -1,7 +1,7 @@ -  - - -- net6.0 -+ $(TargetFrameworkForNETSDK) - $(TargetFrameworks);net462 - false - -diff --git a/src/System.CommandLine.NamingConventionBinder.Tests/System.CommandLine.NamingConventionBinder.Tests.csproj b/src/System.CommandLine.NamingConventionBinder.Tests/System.CommandLine.NamingConventionBinder.Tests.csproj -index 43eb7c29..7bff1796 100644 ---- a/src/System.CommandLine.NamingConventionBinder.Tests/System.CommandLine.NamingConventionBinder.Tests.csproj -+++ b/src/System.CommandLine.NamingConventionBinder.Tests/System.CommandLine.NamingConventionBinder.Tests.csproj -@@ -1,6 +1,6 @@ -  - -- net6.0 -+ $(TargetFrameworkForNETSDK) - $(TargetFrameworks);net462 - 10 - -diff --git a/src/System.CommandLine.Rendering.Tests/System.CommandLine.Rendering.Tests.csproj b/src/System.CommandLine.Rendering.Tests/System.CommandLine.Rendering.Tests.csproj -index 1c116508..afd6dc6a 100644 ---- a/src/System.CommandLine.Rendering.Tests/System.CommandLine.Rendering.Tests.csproj -+++ b/src/System.CommandLine.Rendering.Tests/System.CommandLine.Rendering.Tests.csproj -@@ -1,7 +1,7 @@ - - - -- net6.0 -+ $(TargetFrameworkForNETSDK) - false - - -diff --git a/src/System.CommandLine.Suggest.Tests/EndToEndTestApp/EndToEndTestApp.csproj b/src/System.CommandLine.Suggest.Tests/EndToEndTestApp/EndToEndTestApp.csproj -index 9a3eb54d..76add0d5 100644 ---- a/src/System.CommandLine.Suggest.Tests/EndToEndTestApp/EndToEndTestApp.csproj -+++ b/src/System.CommandLine.Suggest.Tests/EndToEndTestApp/EndToEndTestApp.csproj -@@ -6,7 +6,7 @@ - - - Exe -- net6.0 -+ $(TargetFrameworkForNETSDK) - - - -diff --git a/src/System.CommandLine.Suggest.Tests/dotnet-suggest.Tests.csproj b/src/System.CommandLine.Suggest.Tests/dotnet-suggest.Tests.csproj -index da6abedf..f1711a10 100644 ---- a/src/System.CommandLine.Suggest.Tests/dotnet-suggest.Tests.csproj -+++ b/src/System.CommandLine.Suggest.Tests/dotnet-suggest.Tests.csproj -@@ -1,7 +1,7 @@ - - - -- net6.0 -+ $(TargetFrameworkForNETSDK) - - - -diff --git a/src/System.CommandLine.Suggest/dotnet-suggest.csproj b/src/System.CommandLine.Suggest/dotnet-suggest.csproj -index fd825008..ce4bda1d 100644 ---- a/src/System.CommandLine.Suggest/dotnet-suggest.csproj -+++ b/src/System.CommandLine.Suggest/dotnet-suggest.csproj -@@ -1,7 +1,7 @@ -  - - Exe -- net6.0 -+ $(TargetFrameworkForNETSDK) - true - true - dotnet-suggest -diff --git a/src/System.CommandLine.Tests/System.CommandLine.Tests.csproj b/src/System.CommandLine.Tests/System.CommandLine.Tests.csproj -index c1988ec4..44b5c9fc 100644 ---- a/src/System.CommandLine.Tests/System.CommandLine.Tests.csproj -+++ b/src/System.CommandLine.Tests/System.CommandLine.Tests.csproj -@@ -1,6 +1,6 @@ -  - -- net6.0 -+ $(TargetFrameworkForNETSDK) - $(TargetFrameworks);net462 - false - -diff --git a/src/System.CommandLine.Tests/TestApps/NativeAOT/NativeAOT.csproj b/src/System.CommandLine.Tests/TestApps/NativeAOT/NativeAOT.csproj -index b0036ed0..cc306fea 100644 ---- a/src/System.CommandLine.Tests/TestApps/NativeAOT/NativeAOT.csproj -+++ b/src/System.CommandLine.Tests/TestApps/NativeAOT/NativeAOT.csproj -@@ -2,13 +2,13 @@ - - - Exe -- net6.0 -+ $(TargetFrameworkForNETSDK) - - false - - - -- ..\..\..\System.CommandLine\bin\Release\net6.0\System.CommandLine.dll -+ ..\..\..\System.CommandLine\bin\Release\$(TargetFrameworkForNETSDK)\System.CommandLine.dll - - - -diff --git a/src/System.CommandLine.Tests/TestApps/Trimming/Trimming.csproj b/src/System.CommandLine.Tests/TestApps/Trimming/Trimming.csproj -index 6dcf8892..615b0764 100644 ---- a/src/System.CommandLine.Tests/TestApps/Trimming/Trimming.csproj -+++ b/src/System.CommandLine.Tests/TestApps/Trimming/Trimming.csproj -@@ -2,7 +2,7 @@ - - - Exe -- net6.0 -+ $(TargetFrameworkForNETSDK) - enable - enable - true -@@ -10,7 +10,7 @@ - - - -- ..\..\..\System.CommandLine\bin\Release\net6.0\System.CommandLine.dll -+ ..\..\..\System.CommandLine\bin\Release\$(TargetFrameworkForNETSDK)\System.CommandLine.dll - - - -diff --git a/src/System.CommandLine/System.CommandLine.csproj b/src/System.CommandLine/System.CommandLine.csproj -index 424053a6..37115d70 100644 ---- a/src/System.CommandLine/System.CommandLine.csproj -+++ b/src/System.CommandLine/System.CommandLine.csproj -@@ -3,7 +3,7 @@ - - true - System.CommandLine -- net6.0;netstandard2.0 -+ $(TargetFrameworkForNETSDK);netstandard2.0 - enable - true - 10 -@@ -15,9 +15,12 @@ - * Test and debug support - - true -+ true -+ -+ -+ - true - true -- true - - - diff --git a/src/SourceBuild/tarball/patches/format/0001-Update-nullability-constraints-for-BeginScope-in-Sim.patch b/src/SourceBuild/tarball/patches/format/0001-Update-nullability-constraints-for-BeginScope-in-Sim.patch deleted file mode 100644 index 2285f0472..000000000 --- a/src/SourceBuild/tarball/patches/format/0001-Update-nullability-constraints-for-BeginScope-in-Sim.patch +++ /dev/null @@ -1,24 +0,0 @@ -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: Logan Bussell -Date: Mon, 16 May 2022 16:29:43 -0700 -Subject: [PATCH] Update nullability constraints for BeginScope in - SimpleConsoleLogger - -Workaround for: https://github.com/dotnet/format/issues/1609 ---- - src/Logging/SimpleConsoleLogger.cs | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/src/Logging/SimpleConsoleLogger.cs b/src/Logging/SimpleConsoleLogger.cs -index fd8015c..2971595 100644 ---- a/src/Logging/SimpleConsoleLogger.cs -+++ b/src/Logging/SimpleConsoleLogger.cs -@@ -64,7 +64,7 @@ public bool IsEnabled(LogLevel logLevel) - return (int)logLevel >= (int)_minimalLogLevel; - } - -- public IDisposable BeginScope(TState state) -+ public IDisposable? BeginScope(TState state) where TState : notnull - { - return NullScope.Instance; - } diff --git a/src/SourceBuild/tarball/patches/razor-compiler/0001-Add-NoWarn-for-NU1507.patch b/src/SourceBuild/tarball/patches/razor-compiler/0001-Add-NoWarn-for-NU1507.patch deleted file mode 100644 index d1d297915..000000000 --- a/src/SourceBuild/tarball/patches/razor-compiler/0001-Add-NoWarn-for-NU1507.patch +++ /dev/null @@ -1,25 +0,0 @@ -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: Logan Bussell -Date: Fri, 13 May 2022 16:14:14 -0700 -Subject: [PATCH] Add NoWarn for NU1507 - -This warning occurs when using NuGet central package management without defining -any Package Source Mappings. - -Workaround for: https://github.com/dotnet/razor-compiler/issues/242 ---- - Directory.Build.props | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/Directory.Build.props b/Directory.Build.props -index a57125f5..019ac376 100644 ---- a/Directory.Build.props -+++ b/Directory.Build.props -@@ -55,6 +55,7 @@ - - $(NoWarn.Replace('1591', '')) - $(NoWarn);0105 -+ $(NoWarn);NU1507 - - - $(WarningsNotAsErrors);CS1591 diff --git a/src/SourceBuild/tarball/patches/roslyn/0001-Use-the-source-built-version-of-ref-packs-and-don-t-.patch b/src/SourceBuild/tarball/patches/roslyn/0001-Use-the-source-built-version-of-ref-packs-and-don-t-.patch deleted file mode 100644 index 1a9573cb5..000000000 --- a/src/SourceBuild/tarball/patches/roslyn/0001-Use-the-source-built-version-of-ref-packs-and-don-t-.patch +++ /dev/null @@ -1,37 +0,0 @@ -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: Chris Rummel -Date: Thu, 15 Sep 2022 14:46:53 -0500 -Subject: [PATCH] Use the source-built version of ref packs and don't use app - host when building in source-build. - -Backport PR: https://github.com/dotnet/roslyn/pull/64055. - ---- - Directory.Build.targets | 15 +++++++++++++++ - 1 file changed, 15 insertions(+) - -diff --git a/Directory.Build.targets b/Directory.Build.targets -index 8f38a48cd95..dfb4fd33c9a 100644 ---- a/Directory.Build.targets -+++ b/Directory.Build.targets -@@ -1,5 +1,20 @@ - - -+ -+ -+ -+ 6.0.0 -+ -+ -+ 6.0.0 -+ -+ -+ -+ -+ -+ false -+ -+ - - - diff --git a/src/SourceBuild/tarball/patches/sdk/0002-Look-for-msbuild-net7.0-artifacts.patch b/src/SourceBuild/tarball/patches/sdk/0002-Look-for-msbuild-net7.0-artifacts.patch deleted file mode 100644 index dd0d19c7a..000000000 --- a/src/SourceBuild/tarball/patches/sdk/0002-Look-for-msbuild-net7.0-artifacts.patch +++ /dev/null @@ -1,23 +0,0 @@ -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: Logan Bussell -Date: Tue, 20 Sep 2022 10:10:29 -0700 -Subject: [PATCH] Look for msbuild net7.0 artifacts - -Backport: https://github.com/dotnet/sdk/pull/28425 ---- - .../Microsoft.DotNet.Cli.Utils.csproj | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/src/Cli/Microsoft.DotNet.Cli.Utils/Microsoft.DotNet.Cli.Utils.csproj b/src/Cli/Microsoft.DotNet.Cli.Utils/Microsoft.DotNet.Cli.Utils.csproj -index 03ea923734..3246138cf9 100644 ---- a/src/Cli/Microsoft.DotNet.Cli.Utils/Microsoft.DotNet.Cli.Utils.csproj -+++ b/src/Cli/Microsoft.DotNet.Cli.Utils/Microsoft.DotNet.Cli.Utils.csproj -@@ -22,7 +22,7 @@ - - - -- $(PkgMicrosoft_Build_Runtime)\contentFiles\any\net6.0\MSBuild.dll -+ $(PkgMicrosoft_Build_Runtime)\contentFiles\any\net7.0\MSBuild.dll - - - diff --git a/src/finalizer/finalizer.cpp b/src/finalizer/finalizer.cpp index c8f5eca6b..d68418b9b 100644 --- a/src/finalizer/finalizer.cpp +++ b/src/finalizer/finalizer.cpp @@ -447,7 +447,17 @@ extern "C" HRESULT DetectSdk(LPWSTR sczSdkFeatureBandVersion, LPWSTR sczArchitec LogStringLine(REPORT_STANDARD, "Scanning %ls", sczInstalledSdkVersionsKeyName); hr = RegOpen(HKEY_LOCAL_MACHINE, sczInstalledSdkVersionsKeyName, KEY_READ, &hkInstalledSdkVersionsKey); - ExitOnFailure(hr, "Failed to read installed versions key."); + + // When the last SDK is removed the registry key should no longer exist so we can just exit + if (E_FILENOTFOUND == hr) + { + LogStringLine(REPORT_STANDARD, "Registry key not found: %ls.", sczInstalledSdkVersionsKeyName); + hr = S_OK; + *pbInstalled = FALSE; + goto LExit; + } + + ExitOnFailure(hr, "Failed to open registry key: %ls.", sczInstalledSdkVersionsKeyName); for (DWORD dwSdkVersionsValueIndex = 0;; ++dwSdkVersionsValueIndex) { @@ -509,9 +519,10 @@ int wmain(int argc, wchar_t* argv[]) hr = ::DetectSdk(sczFeatureBandVersion, argv[3], &bSdkFeatureBandInstalled); ExitOnFailure(hr, "Failed to detect installed SDKs."); - if (!bSdkFeatureBandInstalled) + // If the feature band is still present, do not remove workloads. + if (bSdkFeatureBandInstalled) { - LogStringLine(REPORT_STANDARD, "SDK with feature band %ls could not be found.", sczFeatureBandVersion); + LogStringLine(REPORT_STANDARD, "Detected SDK with feature band %ls.", sczFeatureBandVersion); goto LExit; } diff --git a/src/redist/targets/Crossgen.targets b/src/redist/targets/Crossgen.targets index da7d186a1..399529689 100644 --- a/src/redist/targets/Crossgen.targets +++ b/src/redist/targets/Crossgen.targets @@ -29,7 +29,27 @@ BuildInParallel="False" Projects="@(CrossGenDownloadPackageProject)"> - + + + + net7.0 + + $(SdkOutputDirectory)Sdks\Microsoft.NET.Sdk\tools\$(DefaultToolTfm)\ + $(SdkOutputDirectory)Sdks\Microsoft.NET.Sdk.BlazorWebAssembly\tools\$(DefaultToolTfm)\ + $(SdkOutputDirectory)Sdks\NuGet.Build.Tasks.Pack\CoreCLR\ + $(SdkOutputDirectory)Sdks\Microsoft.NET.Sdk.Razor\tasks\$(DefaultToolTfm)\ + $(SdkOutputDirectory)Sdks\Microsoft.NET.Sdk.WindowsDesktop\tools\$(DefaultToolTfm)\ + $(SdkOutputDirectory)Sdks\Microsoft.NET.ILLink.Tasks\tools\$(DefaultToolTfm)\ + $(SdkOutputDirectory)Sdks\Microsoft.NET.Sdk.Publish\tools\$(DefaultToolTfm)\ + $(SdkOutputDirectory)Sdks\Microsoft.NET.Sdk.Web\tools\$(DefaultToolTfm)\ + $(SdkOutputDirectory)Sdks\Microsoft.NET.Sdk.Web.ProjectSystem\tools\$(DefaultToolTfm)\ + $(SdkOutputDirectory)Sdks\Microsoft.NET.Sdk.Worker\tools\$(DefaultToolTfm)\ + + @@ -49,16 +69,16 @@ - - - - - - - - - - + + + + + + + + + + @@ -121,6 +141,21 @@ false + + + + + + + + + + + + + + + 30 - $([MSBuild]::Add($(VersionFeature), 30)) + 32 17 $([MSBuild]::Add($(VersionFeature), 10)) diff --git a/src/redist/targets/packaging/deb/postinst b/src/redist/targets/packaging/deb/postinst index 615c17e6b..696ec8acc 100644 --- a/src/redist/targets/packaging/deb/postinst +++ b/src/redist/targets/packaging/deb/postinst @@ -4,6 +4,5 @@ first_run() { /usr/share/dotnet/dotnet exec /usr/share/dotnet/sdk/%SDK_VERSION%/dotnet.dll internal-reportinstallsuccess "debianpackage" > /dev/null 2>&1 || true } -INSTALL_TEMP_HOME=/tmp/dotnet-installer -[ -d $INSTALL_TEMP_HOME ] || mkdir $INSTALL_TEMP_HOME +INSTALL_TEMP_HOME=$(mktemp -d) # mktemp should set 700 perm automatically HOME=$INSTALL_TEMP_HOME first_run diff --git a/src/redist/targets/packaging/osx/clisdk/scripts/postinstall b/src/redist/targets/packaging/osx/clisdk/scripts/postinstall index 28339be99..86710223d 100644 --- a/src/redist/targets/packaging/osx/clisdk/scripts/postinstall +++ b/src/redist/targets/packaging/osx/clisdk/scripts/postinstall @@ -12,7 +12,7 @@ first_run() { $INSTALL_DESTINATION/dotnet exec $INSTALL_DESTINATION/sdk/%SDK_VERSION%/dotnet.dll internal-reportinstallsuccess "$1" > /dev/null 2>&1 || true } -[ -d $INSTALL_TEMP_HOME ] || mkdir $INSTALL_TEMP_HOME +INSTALL_TEMP_HOME=$(mktemp -d) # mktemp should set 700 perm automatically HOME=$INSTALL_TEMP_HOME first_run exit 0 diff --git a/src/redist/targets/packaging/windows/clisdk/bundle.wxs b/src/redist/targets/packaging/windows/clisdk/bundle.wxs index 346e66d75..bac843303 100644 --- a/src/redist/targets/packaging/windows/clisdk/bundle.wxs +++ b/src/redist/targets/packaging/windows/clisdk/bundle.wxs @@ -151,7 +151,31 @@ - + + + + + @@ -208,20 +232,7 @@ - - + diff --git a/test/EndToEnd/TelemetryOptOutDefaultTests.cs b/test/EndToEnd/TelemetryOptOutDefaultTests.cs new file mode 100644 index 000000000..1e2d2ecef --- /dev/null +++ b/test/EndToEnd/TelemetryOptOutDefaultTests.cs @@ -0,0 +1,24 @@ +using System.IO; +using FluentAssertions; +using Microsoft.DotNet.Tools.Test.Utilities; +using Xunit; + +namespace EndToEnd.Tests +{ + public class TelemetryOptOutDefault : TestBase + { + [Fact] + public void TelemetryOptOutDefaultAttribute() + { + var versionCommand = new DotnetCommand() + .ExecuteWithCapturedOutput("--version"); + + var sdkVersion = versionCommand.StdOut.Trim(); + + var dotnetdir = Path.Combine(Path.GetDirectoryName(RepoDirectoriesProvider.DotnetUnderTest), "sdk", sdkVersion); + + var result = AssemblyInfo.Get(Path.Combine(dotnetdir, "dotnet.dll"), "AssemblyMetadataAttribute"); + result.Should().Contain("TelemetryOptOutDefault:False"); + } + } +} diff --git a/test/Microsoft.DotNet.Tools.Tests.Utilities/AssemblyInfo.cs b/test/Microsoft.DotNet.Tools.Tests.Utilities/AssemblyInfo.cs new file mode 100644 index 000000000..f02cfbeb3 --- /dev/null +++ b/test/Microsoft.DotNet.Tools.Tests.Utilities/AssemblyInfo.cs @@ -0,0 +1,78 @@ +using System; +using System.Collections.Generic; +using System.IO; +using System.Reflection.Metadata; +using System.Reflection.PortableExecutable; +using System.Text; + +namespace Microsoft.DotNet.Tools.Test.Utilities +{ + public static class AssemblyInfo + { + public static IList Get(string assemblyPath, string assemblyInfoName) + { + var list = new List(); + + using (var stream = File.OpenRead(assemblyPath)) + using (var peReader = new PEReader(stream)) + { + var metadataReader = peReader.GetMetadataReader(); + var assemblyDefinition = metadataReader.GetAssemblyDefinition(); + + foreach (var handle in assemblyDefinition.GetCustomAttributes()) + { + var attribute = metadataReader.GetCustomAttribute(handle); + var constructor = metadataReader.GetMemberReference((MemberReferenceHandle)attribute.Constructor); + var type = metadataReader.GetTypeReference((TypeReferenceHandle)constructor.Parent); + var name = metadataReader.GetString(type.Name); + + if (name.Equals(assemblyInfoName)) + { + var signature = metadataReader.GetBlobReader(constructor.Signature); + var value = metadataReader.GetBlobReader(attribute.Value); + var header = signature.ReadSignatureHeader(); + + const ushort prolog = 1; // two-byte "prolog" defined by ECMA-335 (II.23.3) to be at the beginning of attribute value blobs + if (value.ReadUInt16() != prolog || header.Kind != SignatureKind.Method || header.IsGeneric) + { + throw new BadImageFormatException(); + } + + var paramCount = signature.ReadCompressedInteger(); + if (paramCount <= 0 || // must have at least 1 parameter + signature.ReadSignatureTypeCode() != SignatureTypeCode.Void) // return type must be void + { + continue; + } + + var sb = new StringBuilder(); + while (paramCount > 0 && sb != null) + { + switch (signature.ReadSignatureTypeCode()) + { + case SignatureTypeCode.String: + sb.Append(value.ReadSerializedString()); + break; + default: + sb = null; + break; + } + + paramCount--; + if (paramCount != 0) + { + sb?.Append(':'); + } + } + + if (sb != null) + { + list.Add(sb.ToString()); + } + } + } + } + return list; + } + } +}