[automated] Merge branch 'release/6.0.2xx' => 'release/6.0.3xx' (#13461)

* Update dependencies from https://github.com/dotnet/source-build-reference-packages build 20220309.1

Microsoft.SourceBuild.Intermediate.source-build-reference-packages
 From Version 6.0.0-servicing.22158.2 -> To Version 6.0.0-servicing.22159.1

* Update source-build with 6.0.103 artifacts

* Disable public source-build tarball ci (#13377)

* Fix invalid pipeline trigger.

* Update dependencies from https://github.com/dotnet/source-build-reference-packages build 20220310.1

Microsoft.SourceBuild.Intermediate.source-build-reference-packages
 From Version 6.0.0-servicing.22159.1 -> To Version 6.0.0-servicing.22160.1

* Update dependencies from https://github.com/dotnet/arcade build 20220309.8

Microsoft.DotNet.CMake.Sdk , Microsoft.DotNet.Build.Tasks.Installers , Microsoft.DotNet.Arcade.Sdk
 From Version 6.0.0-beta.22122.7 -> To Version 6.0.0-beta.22159.8

* Remove maui workloads from 6.0.100

The old workloads break MU so we either have to update them or remove them.

* Only do signcheck if there are files to sign check

* Remove template text-only packages which are alread included in source-build (#13380)

* Update dependencies from https://github.com/dotnet/arcade build 20220311.1

Microsoft.DotNet.CMake.Sdk , Microsoft.DotNet.Build.Tasks.Installers , Microsoft.DotNet.Arcade.Sdk
 From Version 6.0.0-beta.22159.8 -> To Version 6.0.0-beta.22161.1

* Update source-build MsftToSbSdk.diff baseline (#13400)

* Update dependencies from https://github.com/dotnet/source-build-reference-packages build 20220311.1

Microsoft.SourceBuild.Intermediate.source-build-reference-packages
 From Version 6.0.0-servicing.22160.1 -> To Version 6.0.0-servicing.22161.1

* [release/6.0.1xx] Windows SDK projection update

* [release/6.0.1xx] dotnet watch smoke test (#13392)

* add dotnet watch smoke test

* Fix issue with BundledTemplates condition

* Make a source-build targetted fix to unblock release

* Fix issue with BundledTemplates condition

* Make a source-build targetted fix to unblock release

* Refactor build.sh to optimize PackageVersions.props retrieval (#13443)

* Update NuGet path issue in Run Tests CI step (#13453)

* Refactor SdkContentTests to warn on diffs when run in CI (#13432)

* Revert the Versions.props file

* Revert the Versions.props file

Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com>
Co-authored-by: MichaelSimons <msimons@microsoft.com>
Co-authored-by: v-wuzhai <46013274+v-wuzhai@users.noreply.github.com>
Co-authored-by: Marc Paine <marcpop@microsoft.com>
Co-authored-by: Jason Zhai <v-wuzhai@microsoft.com>
Co-authored-by: Manodasan Wignarajah <mawign@microsoft.com>
Co-authored-by: Logan Bussell <loganbussell@microsoft.com>
This commit is contained in:
dotnet-maestro-bot 2022-03-25 09:58:21 -07:00 committed by GitHub
parent 89d0c23a2e
commit 6791ff652b
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
14 changed files with 139 additions and 50 deletions

View file

@ -4,7 +4,7 @@ resources:
pipelines:
- pipeline: installer-build-resource
source: installer
trigger: true
trigger: none
stages:
- stage: build

View file

@ -87,11 +87,11 @@ steps:
set -x
# Use installer repo's NuGet.config during online testing to utilize internal feeds
rm -f ${{ parameters.tarballDir }}/test/Microsoft.DotNet.SourceBuild.SmokeTests/assets/smoke-tests/online.NuGet.Config
cp $(Build.SourcesDirectory)/NuGet.config ${{ parameters.tarballDir }}/test/Microsoft.DotNet.SourceBuild.SmokeTests/assets/smoke-tests/online.NuGet.Config
rm -f ${{ parameters.tarballDir }}/test/Microsoft.DotNet.SourceBuild.SmokeTests/assets/online.NuGet.Config
cp $(Build.SourcesDirectory)/NuGet.config ${{ parameters.tarballDir }}/test/Microsoft.DotNet.SourceBuild.SmokeTests/assets/online.NuGet.Config
dockerVolumeArgs="-v ${{ parameters.tarballDir }}:/tarball"
dockerEnvArgs="-e SMOKE_TESTS_EXCLUDE_OMNISHARP=${{ parameters.excludeOmniSharpTests}}"
dockerEnvArgs="-e SMOKE_TESTS_EXCLUDE_OMNISHARP=${{ parameters.excludeOmniSharpTests}} -e SMOKE_TESTS_WARN_SDK_CONTENT_DIFFS=true"
if [[ '${{ parameters.isBootstrapped }}' != 'true' && '${{ parameters.installerBuildResourceId }}' != 'current' ]]; then
dockerVolumeArgs+=" -v $(PIPELINE.WORKSPACE)/${{ parameters.installerBuildResourceId }}/BlobArtifacts/:/BlobArtifacts"
@ -99,7 +99,7 @@ steps:
dockerEnvArgs+=" -e SMOKE_TESTS_MSFT_SDK_TARBALL_PATH=/BlobArtifacts/$msftSdkTarballName"
fi
docker run --rm $dockerVolumeArgs -w /tarball $dockerEnvArgs ${{ parameters.container }} ./build.sh --run-smoke-test ${{ parameters.additionalBuildArgs }}
docker run --rm $dockerVolumeArgs -w /tarball $dockerEnvArgs ${{ parameters.container }} ./build.sh --run-smoke-test ${{ parameters.additionalBuildArgs }} -- /p:SmokeTestConsoleVerbosity=detailed
displayName: Run Tests
# Don't use CopyFiles@2 as it encounters permissions issues because it indexes all files in the source directory graph.

View file

@ -11,9 +11,7 @@
should be added to source-build-reference-packages.
-->
<ItemGroup>
<PackageDownload Include="Microsoft.DotNet.Common.ItemTemplates" Version="[$(MicrosoftDotNetCommonItemTemplates60PackageVersion)]" />
<PackageDownload Include="Microsoft.DotNet.Web.ItemTemplates.6.0" Version="[$(AspNetCorePackageVersionFor60Templates)]" />
<PackageDownload Include="Microsoft.DotNet.Common.ProjectTemplates.6.0" Version="[$(MicrosoftDotNetCommonProjectTemplates60PackageVersion)]" />
<PackageDownload Include="Microsoft.DotNet.Web.ProjectTemplates.6.0" Version="[$(AspNetCorePackageVersionFor60Templates)]" />
<PackageDownload Include="Microsoft.DotNet.Web.Spa.ProjectTemplates.6.0" Version="[$(AspNetCorePackageVersionFor60Templates)]" />

View file

@ -93,9 +93,11 @@
<PropertyGroup>
<SdkTarballPath>%(SdkTarballItem.Identity)</SdkTarballPath>
<SmokeTestConsoleVerbosity Condition="'$(SmokeTestConsoleVerbosity)' == ''">normal</SmokeTestConsoleVerbosity>
</PropertyGroup>
<Exec Command="$(DotnetToolCommand) test $(SmokeTestsDir) --logger:trx -c $(Configuration)"
<!-- Multiple loggers are specified so that results are captured in trx and pipelines can fail with AzDO pipeline warnings -->
<Exec Command="$(DotnetToolCommand) test $(SmokeTestsDir) --logger:trx --logger:'console;verbosity=$(SmokeTestConsoleVerbosity)' -c $(Configuration)"
EnvironmentVariables="
SMOKE_TESTS_SDK_TARBALL_PATH=$(SdkTarballPath);
SMOKE_TESTS_TARGET_RID=$(TargetRid);

View file

@ -114,14 +114,14 @@ restoredPackagesDir="$SCRIPT_ROOT/packages/restored"
if [ -d "$SCRIPT_ROOT/packages/archive" ]; then
sourceBuiltArchive=`find $SCRIPT_ROOT/packages/archive -maxdepth 1 -name 'Private.SourceBuilt.Artifacts*.tar.gz'`
if [ -f "$sourceBuiltArchive" ]; then
if [ -f "$SCRIPT_ROOT/packages/previously-source-built/PackageVersions.props" ]; then
packageVersionsPath=$SCRIPT_ROOT/packages/previously-source-built/PackageVersions.props
elif [ -f "$sourceBuiltArchive" ]; then
tar -xzf "$sourceBuiltArchive" -C /tmp PackageVersions.props
packageVersionsPath=/tmp/PackageVersions.props
fi
else
if [ -f "$CUSTOM_PREVIOUSLY_BUILT_PACKAGES_DIR/PackageVersions.props" ]; then
packageVersionsPath="$CUSTOM_PREVIOUSLY_BUILT_PACKAGES_DIR/PackageVersions.props"
fi
elif [ -f "$CUSTOM_PREVIOUSLY_BUILT_PACKAGES_DIR/PackageVersions.props" ]; then
packageVersionsPath="$CUSTOM_PREVIOUSLY_BUILT_PACKAGES_DIR/PackageVersions.props"
fi
if [ ! -f "$packageVersionsPath" ]; then

View file

@ -34,17 +34,17 @@ namespace Microsoft.DotNet.SourceBuild.SmokeTests
Assert.Null(message);
}
public static void CompareContents(string baselineFileName, string actualContents, ITestOutputHelper outputHelper)
public static void CompareContents(string baselineFileName, string actualContents, ITestOutputHelper outputHelper, bool warnOnDiffs = false)
{
string baselineFilePath = GetBaselineFilePath(baselineFileName);
string actualFilePath = Path.Combine(Environment.CurrentDirectory, $"{baselineFileName}");
File.WriteAllText(actualFilePath, actualContents);
CompareFiles(baselineFilePath, actualFilePath, outputHelper);
CompareFiles(baselineFilePath, actualFilePath, outputHelper, warnOnDiffs);
}
public static void CompareFiles(string baselineFilePath, string actualFilePath, ITestOutputHelper outputHelper)
public static void CompareFiles(string baselineFilePath, string actualFilePath, ITestOutputHelper outputHelper, bool warnOnDiffs = false)
{
string baselineFileText = File.ReadAllText(baselineFilePath);
string actualFileText = File.ReadAllText(actualFilePath);
@ -55,11 +55,21 @@ namespace Microsoft.DotNet.SourceBuild.SmokeTests
{
// Retrieve a diff in order to provide a UX which calls out the diffs.
string diff = DiffFiles(baselineFilePath, actualFilePath, outputHelper);
message = $"{Environment.NewLine}Baseline '{baselineFilePath}' does not match actual '{actualFilePath}`. {Environment.NewLine}"
string prefix = warnOnDiffs ? "##vso[task.logissue type=warning;]" : string.Empty;
message = $"{Environment.NewLine}{prefix}Baseline '{baselineFilePath}' does not match actual '{actualFilePath}`. {Environment.NewLine}"
+ $"{diff}{Environment.NewLine}";
if (warnOnDiffs)
{
outputHelper.WriteLine(message);
outputHelper.WriteLine("##vso[task.complete result=SucceededWithIssues;]");
}
}
Assert.Null(message);
if (!warnOnDiffs)
{
Assert.Null(message);
}
}
public static string DiffFiles(string file1Path, string file2Path, ITestOutputHelper outputHelper)

View file

@ -15,6 +15,7 @@ internal static class Config
public const string PrereqsPathEnv = "SMOKE_TESTS_PREREQS_PATH";
public const string SdkTarballPathEnv = "SMOKE_TESTS_SDK_TARBALL_PATH";
public const string TargetRidEnv = "SMOKE_TESTS_TARGET_RID";
public const string WarnSdkContentDiffsEnv = "SMOKE_TESTS_WARN_SDK_CONTENT_DIFFS";
public static string DotNetDirectory { get; } =
Environment.GetEnvironmentVariable(DotNetDirectoryEnv) ?? Path.Combine(Directory.GetCurrentDirectory(), ".dotnet");
@ -23,4 +24,6 @@ internal static class Config
public static string? SdkTarballPath { get; } = Environment.GetEnvironmentVariable(SdkTarballPathEnv);
public static string TargetRid { get; } = Environment.GetEnvironmentVariable(TargetRidEnv) ??
throw new InvalidOperationException($"'{Config.TargetRidEnv}' must be specified");
public static bool WarnOnSdkContentDiffs { get; } =
bool.TryParse(Environment.GetEnvironmentVariable(WarnSdkContentDiffsEnv), out bool excludeOnlineTests) && excludeOnlineTests;
}

View file

@ -79,14 +79,25 @@ internal class DotNetHelper
}
}
public void ExecuteCmd(string args, string? workingDirectory = null)
public void ExecuteCmd(string args, string? workingDirectory = null, Action<Process>? additionalProcessConfigCallback = null, int expectedExitCode = 0, int millisecondTimeout = -1)
{
Action<Process, string?> configureProcess = (Process process, string? workingDirectory) => {
ConfigureProcess(process, workingDirectory);
if (additionalProcessConfigCallback != null)
{
additionalProcessConfigCallback(process);
}
};
(Process Process, string StdOut, string StdErr) executeResult = ExecuteHelper.ExecuteProcess(
DotNetPath,
args,
OutputHelper,
configure: (process) => ConfigureProcess(process, workingDirectory));
ExecuteHelper.ValidateExitCode(executeResult);
configure: (process) => configureProcess(process, workingDirectory),
millisecondTimeout: millisecondTimeout);
ExecuteHelper.ValidateExitCode(executeResult, expectedExitCode);
}
public static void ConfigureProcess(Process process, string? workingDirectory, bool setPath = false)
@ -170,18 +181,14 @@ internal class DotNetHelper
public void ExecuteRunWeb(string projectName)
{
(Process Process, string StdOut, string StdErr) executeResult = ExecuteHelper.ExecuteProcess(
DotNetPath,
ExecuteCmd(
$"run {GetBinLogOption(projectName, "run")}",
OutputHelper,
configure: configureProcess,
GetProjectDirectory(projectName),
additionalProcessConfigCallback: processConfigCallback,
millisecondTimeout: 30000);
ExecuteHelper.ValidateExitCode(executeResult);
void configureProcess(Process process)
void processConfigCallback(Process process)
{
ConfigureProcess(process, GetProjectDirectory(projectName));
process.OutputDataReceived += new DataReceivedEventHandler((sender, e) =>
{
if (e.Data?.Contains("Application started. Press Ctrl+C to shut down.") ?? false)

View file

@ -0,0 +1,60 @@
// 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.
using System.Diagnostics;
using System.IO;
using Xunit;
using Xunit.Abstractions;
namespace Microsoft.DotNet.SourceBuild.SmokeTests;
public class DotNetWatchTests : SmokeTests
{
public DotNetWatchTests(ITestOutputHelper outputHelper) : base(outputHelper) { }
[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);
Assert.True(outputChanged);
void processConfigCallback(Process process)
{
const string waitingString = "Waiting for a file to change before restarting dotnet...";
const string expectedString = "Hello from dotnet watch!";
bool fileChanged = false;
process.OutputDataReceived += new DataReceivedEventHandler((sender, e) =>
{
if (e.Data?.Contains(waitingString) ?? false)
{
if (!fileChanged) {
OutputHelper.WriteLine("Program started, changing file on disk to trigger restart...");
File.WriteAllText(
Path.Combine(projectDirectory, "Program.cs"),
File.ReadAllText(Path.Combine(projectDirectory, "Program.cs")).Replace("Hello, World!", expectedString));
fileChanged = true;
}
}
else if (e.Data?.Contains(expectedString) ?? false)
{
outputChanged = true;
OutputHelper.WriteLine("Successfully re-ran program after code change.");
ExecuteHelper.ExecuteProcessValidateExitCode("kill", $"-s TERM {process.Id}", OutputHelper);
}
});
}
}
}

View file

@ -84,9 +84,9 @@ internal static class ExecuteHelper
return result.StdOut;
}
public static void ValidateExitCode((Process Process, string StdOut, string StdErr) result)
public static void ValidateExitCode((Process Process, string StdOut, string StdErr) result, int expectedExitCode = 0)
{
if (result.Process.ExitCode != 0)
if (result.Process.ExitCode != expectedExitCode)
{
ProcessStartInfo startInfo = result.Process.StartInfo;
string msg = $"Failed to execute {startInfo.FileName} {startInfo.Arguments}" +

View file

@ -22,7 +22,7 @@ public class SdkContentTests : SmokeTests
/// This makes the baseline durable between releases. This does mean however, entries
/// in the baseline may appear identical if the diff is version specific.
/// </Summary>
[SkippableFact(new[] { Config.MsftSdkTarballPathEnv, Config.MsftSdkTarballPathEnv }, skipOnNullOrWhiteSpace: true)]
[SkippableFact(new[] { Config.MsftSdkTarballPathEnv, Config.SdkTarballPathEnv }, skipOnNullOrWhiteSpace: true)]
public void CompareMsftToSb()
{
const string msftFileListingFileName = "msftSdkFiles.txt";
@ -34,7 +34,7 @@ public class SdkContentTests : SmokeTests
diff = RemoveVersionedPaths(diff);
diff = RemoveDiffMarkers(diff);
diff = RemoveRids(diff);
BaselineHelper.CompareContents("MsftToSbSdk.diff", diff, OutputHelper);
BaselineHelper.CompareContents("MsftToSbSdk.diff", diff, OutputHelper, Config.WarnOnSdkContentDiffs);
}
private void WriteTarballFileList(string? tarballPath, string outputFileName)

View file

@ -47,18 +47,18 @@ index ------------
+./packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/System.Text.Encodings.Web.xml
+./packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/System.Text.Json.dll
+./packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/System.Text.Json.xml
+./packs/Microsoft.NETCore.App.Host.bannana.rid/
+./packs/Microsoft.NETCore.App.Host.bannana.rid/x.y.z/
+./packs/Microsoft.NETCore.App.Host.bannana.rid/x.y.z/runtimes/
+./packs/Microsoft.NETCore.App.Host.bannana.rid/x.y.z/runtimes/bannana.rid/
+./packs/Microsoft.NETCore.App.Host.bannana.rid/x.y.z/runtimes/bannana.rid/native/
+./packs/Microsoft.NETCore.App.Host.bannana.rid/x.y.z/runtimes/bannana.rid/native/apphost
+./packs/Microsoft.NETCore.App.Host.bannana.rid/x.y.z/runtimes/bannana.rid/native/coreclr_delegates.h
+./packs/Microsoft.NETCore.App.Host.bannana.rid/x.y.z/runtimes/bannana.rid/native/hostfxr.h
+./packs/Microsoft.NETCore.App.Host.bannana.rid/x.y.z/runtimes/bannana.rid/native/libnethost.a
+./packs/Microsoft.NETCore.App.Host.bannana.rid/x.y.z/runtimes/bannana.rid/native/libnethost.so
+./packs/Microsoft.NETCore.App.Host.bannana.rid/x.y.z/runtimes/bannana.rid/native/nethost.h
+./packs/Microsoft.NETCore.App.Host.bannana.rid/x.y.z/runtimes/bannana.rid/native/singlefilehost
+./packs/Microsoft.NETCore.App.Host.banana.rid/
+./packs/Microsoft.NETCore.App.Host.banana.rid/x.y.z/
+./packs/Microsoft.NETCore.App.Host.banana.rid/x.y.z/runtimes/
+./packs/Microsoft.NETCore.App.Host.banana.rid/x.y.z/runtimes/banana.rid/
+./packs/Microsoft.NETCore.App.Host.banana.rid/x.y.z/runtimes/banana.rid/native/
+./packs/Microsoft.NETCore.App.Host.banana.rid/x.y.z/runtimes/banana.rid/native/apphost
+./packs/Microsoft.NETCore.App.Host.banana.rid/x.y.z/runtimes/banana.rid/native/coreclr_delegates.h
+./packs/Microsoft.NETCore.App.Host.banana.rid/x.y.z/runtimes/banana.rid/native/hostfxr.h
+./packs/Microsoft.NETCore.App.Host.banana.rid/x.y.z/runtimes/banana.rid/native/libnethost.a
+./packs/Microsoft.NETCore.App.Host.banana.rid/x.y.z/runtimes/banana.rid/native/libnethost.so
+./packs/Microsoft.NETCore.App.Host.banana.rid/x.y.z/runtimes/banana.rid/native/nethost.h
+./packs/Microsoft.NETCore.App.Host.banana.rid/x.y.z/runtimes/banana.rid/native/singlefilehost
./packs/Microsoft.NETCore.App.Ref/
./packs/Microsoft.NETCore.App.Ref/x.y.z/
./packs/Microsoft.NETCore.App.Ref/x.y.z/analyzers/
@ -764,6 +764,14 @@ index ------------
./sdk/x.y.z/ref/mscorlib.dll
./sdk/x.y.z/ref/netstandard.dll
@@ ------------ @@
./sdk/x.y.z/Roslyn/bincore/ru/Microsoft.CodeAnalysis.CSharp.resources.dll
./sdk/x.y.z/Roslyn/bincore/ru/Microsoft.CodeAnalysis.resources.dll
./sdk/x.y.z/Roslyn/bincore/ru/Microsoft.CodeAnalysis.VisualBasic.resources.dll
+./sdk/x.y.z/Roslyn/bincore/runtimes/
+./sdk/x.y.z/Roslyn/bincore/runtimes/win/
+./sdk/x.y.z/Roslyn/bincore/runtimes/win/lib/
+./sdk/x.y.z/Roslyn/bincore/runtimes/win/lib/netcoreapp3.1/
+./sdk/x.y.z/Roslyn/bincore/runtimes/win/lib/netcoreapp3.1/System.Text.Encoding.CodePages.dll
./sdk/x.y.z/Roslyn/bincore/System.Collections.Immutable.dll
./sdk/x.y.z/Roslyn/bincore/System.Reflection.Metadata.dll
./sdk/x.y.z/Roslyn/bincore/System.Runtime.CompilerServices.Unsafe.dll

View file

@ -58,7 +58,8 @@
<SignCheckWorkloadManifestMsiInputFiles Include="@(BundledManifestsToValidateSigning->'%(RestoredMsiPathInNupkg)')" />
</ItemGroup>
<Exec Command="$(SignCheckExe) ^
<Exec Condition="'@(SignCheckWorkloadManifestMsiInputFiles->Count())' != '0'"
Command="$(SignCheckExe) ^
--recursive ^
-f UnsignedFiles ^
-i @(SignCheckWorkloadManifestMsiInputFiles, ' ') ^

View file

@ -26,7 +26,7 @@
<Bundled60Templates Include="Microsoft.DotNet.Web.ItemTemplates.6.0" PackageVersion="$(AspNetCorePackageVersionFor60Templates)" />
<Bundled60Templates Include="Microsoft.DotNet.Web.ProjectTemplates.6.0" PackageVersion="$(AspNetCorePackageVersionFor60Templates)" UseVersionForTemplateInstallPath="true" />
<Bundled60Templates Include="Microsoft.DotNet.Web.Spa.ProjectTemplates.6.0" PackageVersion="$(AspNetCorePackageVersionFor60Templates)" />
<Bundled60Templates Include="Microsoft.Dotnet.Wpf.ProjectTemplates" PackageVersion="$(MicrosoftDotnetWpfProjectTemplates50PackageVersion)" Condition="'$(DotNetBuildFromSource)' != 'true'" />
<Bundled60Templates Include="Microsoft.Dotnet.WinForms.ProjectTemplates" PackageVersion="$(MicrosoftDotnetWinFormsProjectTemplates50PackageVersion)" Condition="'$(DotNetBuildFromSource)' != 'true'" />
@ -39,7 +39,7 @@
<Bundled60Templates Include="Microsoft.Dotnet.WinForms.ProjectTemplates" PackageVersion="$(MicrosoftDotnetWinFormsProjectTemplates60PackageVersion)" />
-->
</ItemGroup>
<ItemGroup>
<Bundled50Templates Include="Microsoft.DotNet.Common.ItemTemplates" PackageVersion="$(MicrosoftDotNetCommonItemTemplates50PackageVersion)" />
<Bundled50Templates Include="Microsoft.DotNet.Common.ProjectTemplates.5.0" PackageVersion="$(MicrosoftDotNetCommonProjectTemplates50PackageVersion)" />
@ -97,7 +97,7 @@
<ItemGroup>
<BundledTemplates Include="@(CurrentVersionBundledTemplates)" />
<BundledTemplates Include="@(PreviousVersionBundledTemplates)" Condition="$(ProductMonikerRid.StartsWith('win'))" />
<BundledTemplates Include="@(PreviousVersionBundledTemplates)" Condition="'$(DotNetBuildFromSource)' != 'true'" />
</ItemGroup>
<ItemGroup>
@ -106,7 +106,7 @@
<RestoredNupkgPath>$(NuGetPackageRoot)$([MSBuild]::ValueOrDefault('%(NupkgPathRelativeToPackageRoot)', '').ToLower())</RestoredNupkgPath>
</BundledTemplates>
</ItemGroup>
<Target Name="DownloadBundledTemplateNupkgs">
<CollatePackageDownloads Packages="@(BundledTemplates)">
<Output TaskParameter="PackageDownloads" ItemName="BundledTemplatePackageDownload" />