diff --git a/Arcade.sln b/Arcade.sln index 80d58e4c7ee..aea5e64ee1a 100644 --- a/Arcade.sln +++ b/Arcade.sln @@ -24,6 +24,8 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.DotNet.SignTool", EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.DotNet.GitSync", "src\Microsoft.DotNet.GitSync\Microsoft.DotNet.GitSync.csproj", "{F7E1C1EF-C234-41BA-A24F-FAD5F357562C}" EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.DotNet.Arcade.Sdk", "src\Microsoft.DotNet.Arcade.Sdk\Microsoft.DotNet.Arcade.Sdk.csproj", "{747A5C75-6069-4C45-8049-AEAA1D864105}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -130,6 +132,18 @@ Global {F7E1C1EF-C234-41BA-A24F-FAD5F357562C}.Release|x64.Build.0 = Release|Any CPU {F7E1C1EF-C234-41BA-A24F-FAD5F357562C}.Release|x86.ActiveCfg = Release|Any CPU {F7E1C1EF-C234-41BA-A24F-FAD5F357562C}.Release|x86.Build.0 = Release|Any CPU + {747A5C75-6069-4C45-8049-AEAA1D864105}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {747A5C75-6069-4C45-8049-AEAA1D864105}.Debug|Any CPU.Build.0 = Debug|Any CPU + {747A5C75-6069-4C45-8049-AEAA1D864105}.Debug|x64.ActiveCfg = Debug|Any CPU + {747A5C75-6069-4C45-8049-AEAA1D864105}.Debug|x64.Build.0 = Debug|Any CPU + {747A5C75-6069-4C45-8049-AEAA1D864105}.Debug|x86.ActiveCfg = Debug|Any CPU + {747A5C75-6069-4C45-8049-AEAA1D864105}.Debug|x86.Build.0 = Debug|Any CPU + {747A5C75-6069-4C45-8049-AEAA1D864105}.Release|Any CPU.ActiveCfg = Release|Any CPU + {747A5C75-6069-4C45-8049-AEAA1D864105}.Release|Any CPU.Build.0 = Release|Any CPU + {747A5C75-6069-4C45-8049-AEAA1D864105}.Release|x64.ActiveCfg = Release|Any CPU + {747A5C75-6069-4C45-8049-AEAA1D864105}.Release|x64.Build.0 = Release|Any CPU + {747A5C75-6069-4C45-8049-AEAA1D864105}.Release|x86.ActiveCfg = Release|Any CPU + {747A5C75-6069-4C45-8049-AEAA1D864105}.Release|x86.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE @@ -142,6 +156,7 @@ Global {A31D6804-9AF4-4618-8D73-16B76E3F8347} = {730AF68A-22FD-4372-9341-5F67D7701DA7} {91FCE4C5-E83B-4C81-B0ED-3EAE417CBBE0} = {A564AF6E-6E4E-44EA-B2D7-C909C6687763} {FE2D1224-2C69-48E2-AEE6-F524AEACF567} = {730AF68A-22FD-4372-9341-5F67D7701DA7} + {747A5C75-6069-4C45-8049-AEAA1D864105} = {730AF68A-22FD-4372-9341-5F67D7701DA7} EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution SolutionGuid = {06E6CFF5-C54E-4623-9587-71A9E3F041D9} diff --git a/Directory.Build.props b/Directory.Build.props index 67f8aa73f42..c5060847fdb 100644 --- a/Directory.Build.props +++ b/Directory.Build.props @@ -4,7 +4,7 @@ false - + True @@ -15,6 +15,6 @@ - net45 + net461 diff --git a/Directory.Build.targets b/Directory.Build.targets index a39018a0661..407a08149e6 100644 --- a/Directory.Build.targets +++ b/Directory.Build.targets @@ -1,6 +1,6 @@ - + - - - - + diff --git a/eng/Sdk.targets b/eng/Sdk.targets new file mode 100644 index 00000000000..c5182cb2980 --- /dev/null +++ b/eng/Sdk.targets @@ -0,0 +1,61 @@ + + + $(MSBuildAllProjects);$(MSBuildThisFileFullPath) + + + + MSBuildSdk + false + true + + + + + + %(RecursiveDir)%(Filename)%(Extension) + + + + + + + All + true + + + All + true + + + + false + + + + + + $(TargetsForTfmSpecificContentInPackage);CollectAssets + + + + + tools/$(TargetFramework)/%(ResolvedFileToPublish.RelativePath) + + + + diff --git a/eng/SignToolData.json b/eng/SignToolData.json index c72fdd9cccc..c2c5bd199a4 100644 --- a/eng/SignToolData.json +++ b/eng/SignToolData.json @@ -6,17 +6,19 @@ "values": [ "bin/Microsoft.DotNet.Build.Tasks.Feed/netstandard1.5/Microsoft.DotNet.Build.Tasks.Feed.dll", "bin/Microsoft.DotNet.Build.Tasks.Feed/netstandard1.5/*/Microsoft.DotNet.Build.Tasks.Feed.resources.dll", - "bin/Microsoft.DotNet.Build.Tasks.Feed/net45/Microsoft.DotNet.Build.Tasks.Feed.dll", - "bin/Microsoft.DotNet.Build.Tasks.Feed/net45/*/Microsoft.DotNet.Build.Tasks.Feed.resources.dll", + "bin/Microsoft.DotNet.Build.Tasks.Feed/net461/Microsoft.DotNet.Build.Tasks.Feed.dll", + "bin/Microsoft.DotNet.Build.Tasks.Feed/net461/*/Microsoft.DotNet.Build.Tasks.Feed.resources.dll", "bin/Microsoft.DotNet.Build.Tasks.Packaging/net46/Microsoft.DotNet.Build.Tasks.Packaging.dll", "bin/Microsoft.DotNet.Build.Tasks.Packaging/netcoreapp2.0/Microsoft.DotNet.Build.Tasks.Packaging.dll", "bin/Microsoft.DotNet.Helix.Client/netstandard1.4/Microsoft.DotNet.Helix.Client.dll", - "bin/Microsoft.DotNet.Helix.Client/net45/Microsoft.DotNet.Helix.Client.dll", + "bin/Microsoft.DotNet.Helix.Client/net461/Microsoft.DotNet.Helix.Client.dll", "bin/Microsoft.DotNet.Helix.Sdk/netstandard2.0/Microsoft.DotNet.Helix.Sdk.dll", - "bin/Microsoft.DotNet.Helix.Sdk/net45/Microsoft.DotNet.Helix.Sdk.dll", + "bin/Microsoft.DotNet.Helix.Sdk/net461/Microsoft.DotNet.Helix.Sdk.dll", "bin/Microsoft.DotNet.SignTool/net461/Microsoft.DotNet.SignTool.exe", "bin/Microsoft.DotNet.SignTool/netcoreapp2.0/Microsoft.DotNet.SignTool.dll", - "bin/Microsoft.DotNet.SignTool.Tests/netcoreapp2.0/Microsoft.DotNet.SignTool.Tests.dll" + "bin/Microsoft.DotNet.SignTool.Tests/netcoreapp2.0/Microsoft.DotNet.SignTool.Tests.dll", + "bin/Microsoft.DotNet.Arcade.Sdk/net461/Microsoft.DotNet.Arcade.Sdk.dll", + "bin/Microsoft.DotNet.Arcade.Sdk/netcoreapp2.0/Microsoft.DotNet.Arcade.Sdk.dll" ] }, { @@ -29,7 +31,9 @@ ], "exclude": [ "Microsoft.Azure.KeyVault.Core.dll", + "Microsoft.Build.dll", "Microsoft.Build.Framework.dll", + "Microsoft.Build.Tasks.Core.dll", "Microsoft.Build.Utilities.Core.dll", "Microsoft.CSharp.dll", "Microsoft.Data.Edm.dll", @@ -39,6 +43,8 @@ "Microsoft.DiaSymReader.PortablePdb.dll", "Microsoft.DotNet.VersionTools.dll", "Microsoft.Rest.ClientRuntime.dll", + "Microsoft.VisualStudio.Setup.Configuration.Interop.dll", + "Microsoft.Win32.Primitives.dll", "Microsoft.WindowsAzure.Storage.dll", "Newtonsoft.Json.dll", "NuGet.Commands.dll", @@ -54,18 +60,26 @@ "NuGet.Protocol.dll", "NuGet.Versioning.dll", "SleetLib.dll", + "System.AppContext.dll", "System.Buffers.dll", "System.Collections.Concurrent.dll", "System.Collections.Immutable.dll", "System.Collections.NonGeneric.dll", + "System.Console.dll", "System.Diagnostics.DiagnosticSource.dll", + "System.Diagnostics.Process.dll", + "System.Diagnostics.TraceSource.dll", "System.Dynamic.Runtime.dll", + "System.Globalization.Calendars.dll", + "System.IO.Compression.dll", "System.IO.Compression.ZipFile.dll", + "System.IO.FileSystem.dll", "System.IO.FileSystem.Primitives.dll", "System.IO.FileSystem.Watcher.dll", "System.Linq.dll", "System.Linq.Expressions.dll", "System.Net.Http.dll", + "System.Net.Sockets.dll", "System.ObjectModel.dll", "System.Reflection.Emit.dll", "System.Reflection.Emit.ILGeneration.dll", @@ -87,11 +101,13 @@ "System.Text.RegularExpressions.dll", "System.Threading.dll", "System.Threading.Overlapped.dll", + "System.Threading.Tasks.Dataflow.dll", "System.Threading.Tasks.Extensions.dll", "System.Threading.Thread.dll", "System.Threading.ThreadPool.dll", "System.Xml.ReaderWriter.dll", "System.Xml.XDocument.dll", - "System.Xml.XmlDocument.dll" + "System.Xml.XmlDocument.dll", + "vswhere.exe" ] } diff --git a/eng/Versions.props b/eng/Versions.props index 870fa88f706..91c5b305c9e 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -14,12 +14,13 @@ 1.0.2 0.25.2 2.0.8 - 14.3.0 - 14.3.0 + 4.3.3 + 15.7.179 + 15.7.179 + 15.7.179 + 15.7.179 2.2.0-preview1-02815-01 3.0.3 - 15.1.548 - 15.1.548 2.0.0 15.7.2 4.8.3 diff --git a/eng/common/build.ps1 b/eng/common/build.ps1 index f74d1226fd7..3a563eb5998 100644 --- a/eng/common/build.ps1 +++ b/eng/common/build.ps1 @@ -181,7 +181,7 @@ function GetBuildCommand() { } function InitializeToolset([string] $buildDriver, [string]$buildArgs) { - $toolsetVersion = $GlobalJson.'msbuild-sdks'.'RoslynTools.RepoToolset' + $toolsetVersion = $GlobalJson.'msbuild-sdks'.'Microsoft.DotNet.Arcade.Sdk' $toolsetLocationFile = Join-Path $ToolsetDir "$toolsetVersion.txt" if (Test-Path $toolsetLocationFile) { @@ -199,7 +199,7 @@ function InitializeToolset([string] $buildDriver, [string]$buildArgs) { $proj = Join-Path $ToolsetDir "restore.proj" - '' | Set-Content $proj + '' | Set-Content $proj & $buildDriver $buildArgs $proj /t:__WriteToolsetLocation /m /nologo /clp:None /warnaserror /bl:$ToolsetRestoreLog /v:$verbosity /p:__ToolsetLocationOutputFile=$toolsetLocationFile if ($lastExitCode -ne 0) { diff --git a/eng/common/build.sh b/eng/common/build.sh index f1b767e4120..b880bf501a4 100755 --- a/eng/common/build.sh +++ b/eng/common/build.sh @@ -220,7 +220,7 @@ function GetDotNetInstallScript { } function InitializeToolset { - ReadJson $global_json_file "RoslynTools.RepoToolset" + ReadJson $global_json_file "Microsoft.DotNet.Arcade.Sdk" local toolset_version=$readjsonvalue local toolset_location_file="$toolset_dir/$toolset_version.txt" @@ -239,7 +239,7 @@ function InitializeToolset { local proj="$toolset_dir/restore.proj" - echo '' > $proj + echo '' > $proj "$build_driver" msbuild $proj /t:__WriteToolsetLocation /m /nologo /clp:None /warnaserror /bl:$toolset_restore_log /v:$verbosity /p:__ToolsetLocationOutputFile=$toolset_location_file local lastexitcode=$? @@ -341,4 +341,4 @@ function Main { ExitWithExitCode $? } -Main \ No newline at end of file +Main diff --git a/global.json b/global.json index 29005ba45c8..4f55980a27f 100644 --- a/global.json +++ b/global.json @@ -3,6 +3,6 @@ "version": "2.1.300" }, "msbuild-sdks": { - "RoslynTools.RepoToolset": "1.0.0-beta2-63011-05" + "Microsoft.DotNet.Arcade.Sdk": "1.0.0-bootstrap-1" } } diff --git a/src/Microsoft.DotNet.Arcade.Sdk/Microsoft.DotNet.Arcade.Sdk.csproj b/src/Microsoft.DotNet.Arcade.Sdk/Microsoft.DotNet.Arcade.Sdk.csproj new file mode 100644 index 00000000000..235a7cf227f --- /dev/null +++ b/src/Microsoft.DotNet.Arcade.Sdk/Microsoft.DotNet.Arcade.Sdk.csproj @@ -0,0 +1,34 @@ + + + + net461;netcoreapp2.0 + + false + + true + + Common toolset for repositories + Roslyn Build Repository Toolset MSBuild SDK + true + + false + false + + + + + + + + + + + sdk/%(Filename)%(Extension) + + + tools/%(Filename)%(Extension) + + + + + diff --git a/src/Microsoft.DotNet.Arcade.Sdk/sdk/Sdk.props b/src/Microsoft.DotNet.Arcade.Sdk/sdk/Sdk.props new file mode 100644 index 00000000000..91eca8f9ab3 --- /dev/null +++ b/src/Microsoft.DotNet.Arcade.Sdk/sdk/Sdk.props @@ -0,0 +1,20 @@ + + + + + $(MSBuildThisFileFullPath);$(MSBuildAllProjects) + + + + + <_SuppressSdkImports>false + <_SuppressSdkImports Condition="'$(__ToolsetLocationOutputFile)' != ''">true + + + + + diff --git a/src/Microsoft.DotNet.Arcade.Sdk/sdk/Sdk.targets b/src/Microsoft.DotNet.Arcade.Sdk/sdk/Sdk.targets new file mode 100644 index 00000000000..ad59db6e5b8 --- /dev/null +++ b/src/Microsoft.DotNet.Arcade.Sdk/sdk/Sdk.targets @@ -0,0 +1,30 @@ + + + + + $(MSBuildThisFileFullPath);$(MSBuildAllProjects) + + + + + <_SuppressAllTargets>false + <_SuppressAllTargets Condition="'$(DotNetBuildFromSource)' == 'true' and '$(ExcludeFromSourceBuild)' == 'true'">true + + + + + + + + + + + + + diff --git a/src/Microsoft.DotNet.Arcade.Sdk/src/DownloadFile.cs b/src/Microsoft.DotNet.Arcade.Sdk/src/DownloadFile.cs new file mode 100644 index 00000000000..24e0d937120 --- /dev/null +++ b/src/Microsoft.DotNet.Arcade.Sdk/src/DownloadFile.cs @@ -0,0 +1,123 @@ +// Copyright (c) Microsoft. All Rights Reserved. Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. + +using System; +using System.IO; +using System.Linq; +using System.Net.Http; +using System.Threading; +using Microsoft.Build.Framework; +using Microsoft.Build.Utilities; +using Tasks = System.Threading.Tasks; + +namespace RoslynTools +{ + public class DownloadFile : Task, ICancelableTask + { + [Required] + public string Uri { get; set; } + + [Required] + public string DestinationPath { get; set; } + + public bool Overwrite { get; set; } + + /// + /// Delay between any necessary retries. + /// + public int RetryDelayMilliseconds { get; set; } = 1000; + + public int Retries { get; set; } = 3; + + private readonly CancellationTokenSource _cancellationSource = new CancellationTokenSource(); + + public void Cancel() => _cancellationSource.Cancel(); + + public override bool Execute() + { + if (Retries < 0) + { + Log.LogError($"Invalid task parameter value: Retries={Retries}"); + return false; + } + + if (RetryDelayMilliseconds < 0) + { + Log.LogError($"Invalid task parameter value: RetryDelayMilliseconds={RetryDelayMilliseconds}"); + return false; + } + + if (File.Exists(DestinationPath) && !Overwrite) + { + return true; + } + + Directory.CreateDirectory(Path.GetDirectoryName(DestinationPath)); + + const string FileUriProtocol = "file://"; + + if (Uri.StartsWith(FileUriProtocol, StringComparison.Ordinal)) + { + var filePath = Uri.Substring(FileUriProtocol.Length); + Log.LogMessage($"Copying '{filePath}' to '{DestinationPath}'"); + File.Copy(filePath, DestinationPath, overwrite: true); + return true; + } + + Log.LogMessage($"Downloading '{Uri}' to '{DestinationPath}'"); + + using (var httpClient = new HttpClient()) + { + try + { + return DownloadAsync(httpClient).Result; + } + catch (AggregateException e) + { + if (e.InnerException is OperationCanceledException) + { + Log.LogError($"Download of '{Uri}' to '{DestinationPath}' has been cancelled."); + return false; + } + + throw e.InnerException; + } + } + } + + private async Tasks.Task DownloadAsync(HttpClient client) + { + int attempt = 0; + + while (true) + { + try + { + var stream = await client.GetStreamAsync(Uri).ConfigureAwait(false); + + using (var outStream = File.Create(DestinationPath)) + { + await stream.CopyToAsync(outStream, bufferSize: 81920, cancellationToken: _cancellationSource.Token).ConfigureAwait(false); + } + + return true; + } + catch (Exception e) when (e is HttpRequestException || e is IOException && !(e is DirectoryNotFoundException || e is PathTooLongException)) + { + attempt++; + + if (attempt > Retries) + { + Log.LogError($"Failed to download '{Uri}' to '{DestinationPath}'"); + return false; + } + + Log.LogWarning($"Retrying download of '{Uri}' to '{DestinationPath}' due to failure: '{e.Message}' ({attempt}/{Retries})"); + + await Tasks.Task.Delay(RetryDelayMilliseconds).ConfigureAwait(false); + continue; + } + } + } + } +} + diff --git a/src/Microsoft.DotNet.Arcade.Sdk/src/GenerateResxSource.cs b/src/Microsoft.DotNet.Arcade.Sdk/src/GenerateResxSource.cs new file mode 100644 index 00000000000..9dc44d7f7af --- /dev/null +++ b/src/Microsoft.DotNet.Arcade.Sdk/src/GenerateResxSource.cs @@ -0,0 +1,227 @@ +// Copyright (c) Microsoft. All Rights Reserved. Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. + +using System; +using System.Globalization; +using System.IO; +using System.Linq; +using System.Text; +using System.Xml.Linq; +using Microsoft.Build.Framework; +using Microsoft.Build.Utilities; + +namespace RoslynTools +{ + public sealed class GenerateResxSource : Task + { + private const int maxDocCommentLength = 256; + + [Required] + public string Language { get; set; } + + [Required] + public string ResourceFile { get; set; } + + [Required] + public string ResourceName { get; set; } + + [Required] + public string OutputPath { get; set; } + + private enum Lang + { + CSharp, + VisualBasic, + } + + private bool IsLetterChar(UnicodeCategory cat) + { + // letter-character: + // A Unicode character of classes Lu, Ll, Lt, Lm, Lo, or Nl + // A Unicode-escape-sequence representing a character of classes Lu, Ll, Lt, Lm, Lo, or Nl + + switch (cat) + { + case UnicodeCategory.UppercaseLetter: + case UnicodeCategory.LowercaseLetter: + case UnicodeCategory.TitlecaseLetter: + case UnicodeCategory.ModifierLetter: + case UnicodeCategory.OtherLetter: + case UnicodeCategory.LetterNumber: + return true; + } + + return false; + } + + public override bool Execute() + { + string namespaceName; + string className; + + if (string.IsNullOrEmpty(ResourceName)) + { + Log.LogError("ResourceName not specified"); + return false; + } + + string[] nameParts = ResourceName.Split('.'); + if (nameParts.Length == 1) + { + namespaceName = null; + className = nameParts[0]; + } + else + { + namespaceName = string.Join(".", nameParts, 0, nameParts.Length - 1); + className = nameParts.Last(); + } + + string docCommentStart; + Lang language; + switch (Language.ToUpperInvariant()) + { + case "C#": + language = Lang.CSharp; + docCommentStart = "///"; + break; + + case "VB": + language = Lang.VisualBasic; + docCommentStart = "'''"; + break; + + default: + Log.LogError($"GenerateResxSource doesn't support language: '{Language}'"); + return false; + } + + string classIndent = (namespaceName == null ? "" : " "); + string memberIndent = classIndent + " "; + + var strings = new StringBuilder(); + foreach (var node in XDocument.Load(ResourceFile).Descendants("data")) + { + string name = node.Attribute("name")?.Value; + if (name == null) + { + Log.LogError("Missing resource name"); + return false; + } + + string value = node.Elements("value").FirstOrDefault()?.Value.Trim(); + if (value == null) + { + Log.LogError($"Missing resource value: '{name}'"); + return false; + } + + if (name == "") + { + Log.LogError($"Empty resource name"); + return false; + } + + if (value.Length > maxDocCommentLength) + { + value = value.Substring(0, maxDocCommentLength) + " ..."; + } + + string escapedTrimmedValue = new XElement("summary", value).ToString(); + + foreach (var line in escapedTrimmedValue.Split(new[] { "\r\n", "\r", "\n" }, StringSplitOptions.None)) + { + strings.Append($"{memberIndent}{docCommentStart} "); + strings.AppendLine(line); + } + + string identifier = IsLetterChar(CharUnicodeInfo.GetUnicodeCategory(name[0])) ? name : "_" + name; + + switch (language) + { + case Lang.CSharp: + strings.AppendLine($"{memberIndent}internal static string {identifier} => ResourceManager.GetString(\"{name}\", Culture);"); + break; + + case Lang.VisualBasic: + strings.AppendLine($"{memberIndent}Friend Shared ReadOnly Property {identifier} As String"); + strings.AppendLine($"{memberIndent} Get"); + strings.AppendLine($"{memberIndent} Return ResourceManager.GetString(\"{name}\", Culture)"); + strings.AppendLine($"{memberIndent} End Get"); + strings.AppendLine($"{memberIndent}End Property"); + break; + + default: + throw new InvalidOperationException(); + } + } + + string namespaceStart, namespaceEnd; + if (namespaceName == null) + { + namespaceStart = namespaceEnd = null; + } + else + { + switch (language) + { + case Lang.CSharp: + namespaceStart = $@"namespace {namespaceName}{Environment.NewLine}{{"; + namespaceEnd = "}"; + break; + + case Lang.VisualBasic: + namespaceStart = $"Namespace {namespaceName}"; + namespaceEnd = "End Namespace"; + break; + + default: + throw new InvalidOperationException(); + } + } + + string result; + switch (language) + { + case Lang.CSharp: + result = $@"// +using System.Reflection; + +{namespaceStart} +{classIndent}internal static class {className} +{classIndent}{{ +{memberIndent}internal static global::System.Globalization.CultureInfo Culture {{ get; set; }} +{memberIndent}internal static global::System.Resources.ResourceManager ResourceManager {{ get; }} = new global::System.Resources.ResourceManager(""{ResourceName}"", typeof({className}).GetTypeInfo().Assembly); + +{strings} +{classIndent}}} +{namespaceEnd} +"; + break; + + case Lang.VisualBasic: + result = $@"' +Imports System.Reflection + +{namespaceStart} +{classIndent}Friend Class {className} +{memberIndent}Private Sub New +{memberIndent}End Sub +{memberIndent} +{memberIndent}Friend Shared Property Culture As Global.System.Globalization.CultureInfo +{memberIndent}Friend Shared ReadOnly Property ResourceManager As New Global.System.Resources.ResourceManager(""{ResourceName}"", GetType({className}).GetTypeInfo().Assembly) + +{strings} +{classIndent}End Class +{namespaceEnd} +"; + break; + + default: + throw new InvalidOperationException(); + } + + File.WriteAllText(OutputPath, result); + return true; + } + } +} diff --git a/src/Microsoft.DotNet.Arcade.Sdk/src/RewriteOrchestratedBuildPackageVersions.cs b/src/Microsoft.DotNet.Arcade.Sdk/src/RewriteOrchestratedBuildPackageVersions.cs new file mode 100644 index 00000000000..c78bfa7c6c8 --- /dev/null +++ b/src/Microsoft.DotNet.Arcade.Sdk/src/RewriteOrchestratedBuildPackageVersions.cs @@ -0,0 +1,45 @@ +// Copyright (c) Microsoft. All Rights Reserved. Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. + +using System; +using System.IO; +using System.Net.Http; +using System.Xml.Linq; +using Microsoft.Build.Framework; +using Microsoft.Build.Utilities; + +namespace RoslynTools +{ + public class RewriteOrchestratedBuildPackageVersions : Task + { + [Required] + public string File { get; set; } + + public bool Overwrite { get; set; } + + public override bool Execute() + { + var xml = XDocument.Load(File); + + foreach (var node in xml.Descendants()) + { + const string oldSuffix = "PackageVersion"; + const string newSuffix = "Version"; + + string name = node.Name.LocalName; + if (name.EndsWith(oldSuffix)) + { + node.Name = XName.Get(name.Substring(0, name.Length - oldSuffix.Length) + newSuffix, node.Name.NamespaceName); + } + } + + using (var stream = System.IO.File.OpenWrite(File)) + { + stream.SetLength(0); + xml.Save(stream); + } + + return true; + } + } +} + diff --git a/src/Microsoft.DotNet.Arcade.Sdk/tools/35MSSharedLib1024.snk b/src/Microsoft.DotNet.Arcade.Sdk/tools/35MSSharedLib1024.snk new file mode 100644 index 00000000000..695f1b38774 Binary files /dev/null and b/src/Microsoft.DotNet.Arcade.Sdk/tools/35MSSharedLib1024.snk differ diff --git a/src/Microsoft.DotNet.Arcade.Sdk/tools/AfterSigning.proj b/src/Microsoft.DotNet.Arcade.Sdk/tools/AfterSigning.proj new file mode 100644 index 00000000000..ada714f9803 --- /dev/null +++ b/src/Microsoft.DotNet.Arcade.Sdk/tools/AfterSigning.proj @@ -0,0 +1,27 @@ + + + + + + + + + + + + + + + + + + + diff --git a/src/Microsoft.DotNet.Arcade.Sdk/tools/AfterSolutionBuild.proj b/src/Microsoft.DotNet.Arcade.Sdk/tools/AfterSolutionBuild.proj new file mode 100644 index 00000000000..8ed2a80b465 --- /dev/null +++ b/src/Microsoft.DotNet.Arcade.Sdk/tools/AfterSolutionBuild.proj @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + + + + + diff --git a/src/Microsoft.DotNet.Arcade.Sdk/tools/AspNet.snk b/src/Microsoft.DotNet.Arcade.Sdk/tools/AspNet.snk new file mode 100644 index 00000000000..e10e4889c12 Binary files /dev/null and b/src/Microsoft.DotNet.Arcade.Sdk/tools/AspNet.snk differ diff --git a/src/Microsoft.DotNet.Arcade.Sdk/tools/Build.proj b/src/Microsoft.DotNet.Arcade.Sdk/tools/Build.proj new file mode 100644 index 00000000000..567dc936f9d --- /dev/null +++ b/src/Microsoft.DotNet.Arcade.Sdk/tools/Build.proj @@ -0,0 +1,250 @@ + + + + + + + <_ProjectToBuild Include="$(Projects)"/> + + + + <_RepoRootOriginal>$(RepoRoot) + $([System.IO.Path]::GetFullPath('$(RepoRoot)/')) + + <_RemoveProps>Projects;Restore;QuietRestore;Build;Rebuild;Deploy;Test;IntegrationTest;PerformanceTest;Pack;Sign;Publish + + + + + + + + false + true + + false + false + false + false + + + <_PublishToBlobStorage>false + <_PublishToBlobStorage Condition="$(PB_PublishType.Contains('blob'))">true + + <_DotNetOutputBlobFeedDir>$(DotNetOutputBlobFeedDir) + <_DotNetOutputBlobFeedDir Condition="'$(_DotNetOutputBlobFeedDir)' != '' and !HasTrailingSlash('$(_DotNetOutputBlobFeedDir)')">$(_DotNetOutputBlobFeedDir)\ + + <_PackageVersionOverridesPath Condition="'$(PB_PackageVersionPropsUrl)' != ''">$(ArtifactsToolsetDir)PackageVersionOverrides.props + $(_PackageVersionOverridesPath) + + + + + + + + + + + + <_MSBuildCmd Condition="'$(MSBuildRuntimeType)' != 'Core'">"$(MSBuildBinPath)\MSBuild.exe" /nodeReuse:false + <_MSBuildCmd Condition="'$(MSBuildRuntimeType)' == 'Core'">"$(DotNetTool)" msbuild + + + + <_QuietRestore>false + <_QuietRestore Condition="'$(CIBuild)' != 'true' and '$(QuietRestore)' == 'true'">true + + + <_RestoreTools>false + <_RestoreTools Condition="'$(Restore)' == 'true' and '$(DotNetBuildFromSource)' != 'true'">true + + + + <_SolutionBuildTargets Include="Rebuild" Condition="'$(Rebuild)' == 'true'" /> + <_SolutionBuildTargets Include="Build" Condition="'$(Build)' == 'true' and '$(Rebuild)' != 'true'" /> + + <_SolutionBuildTargets Include="Test" Condition="'$(Test)' == 'true'" /> + + <_SolutionBuildTargets Include="Pack" Condition="'$(Pack)' == 'true'" /> + <_SolutionBuildTargets Include="IntegrationTest" Condition="'$(IntegrationTest)' == 'true'" /> + <_SolutionBuildTargets Include="PerformanceTest" Condition="'$(PerformanceTest)' == 'true'" /> + + + + <_CommonProps Include="Configuration=$(Configuration)"/> + <_CommonProps Include="CIBuild=$(CIBuild)"/> + <_CommonProps Include="RepoRoot=$(RepoRoot)"/> + <_CommonProps Include="VersionsPropsPath=$(VersionsPropsPath)"/> + <_CommonProps Include="FixedVersionsPropsPath=$(FixedVersionsPropsPath)" Condition="'$(FixedVersionsPropsPath)' != ''"/> + <_CommonProps Include="DotNetPackageVersionPropsPath=$(DotNetPackageVersionPropsPath)"/> + + <_CommonProps Include="DisableWarnForInvalidRestoreProjects=true" Condition="'$(DotNetBuildFromSource)' == 'true'"/> + + + + <_RestoreToolsProps Include="@(_CommonProps)"/> + <_RestoreToolsProps Include="BaseIntermediateOutputPath=$(ArtifactsToolsetDir)Common"/> + <_RestoreToolsProps Include="ExcludeRestorePackageImports=true"/> + <_RestoreToolsProps Include="PublishingToBlobStorage=$(_PublishToBlobStorage)"/> + <_RestoreToolsProps Include="ExternalRestoreSources=$(PB_RestoreSource)" Condition="'$(PB_RestoreSource)' != ''"/> + + + + <_PublishProps Include="@(_CommonProps)"/> + <_PublishProps Include="AzureFeedUrl=$(PB_PublishBlobFeedUrl)" Condition="$(_PublishToBlobStorage)" /> + <_PublishProps Include="AzureAccountKey=$(PB_PublishBlobFeedKey)" Condition="$(_PublishToBlobStorage)" /> + <_PublishProps Include="DotNetOutputBlobFeedDir=$(_DotNetOutputBlobFeedDir)" Condition="'$(_DotNetOutputBlobFeedDir)' != ''" /> + + + + <_SolutionBuildProps Include="@(_CommonProps)"/> + <_SolutionBuildProps Include="__DeployProjectOutput=$(Deploy)" Condition="'$(Deploy)' != ''"/> + <_SolutionBuildProps Include="__ExternalRestoreSources=$(PB_RestoreSource)" Condition="'$(PB_RestoreSource)' != ''"/> + + + + <_SolutionBuildPropsArgs Include="@(_SolutionBuildProps->'/p:%(Identity)')" /> + <_RestoreToolsPropArgs Include="@(_RestoreToolsProps->'/p:%(Identity)')" /> + + + + <_SolutionBuildPropsCmdLine>@(_SolutionBuildPropsArgs, ' ') + <_RestoreToolsPropsCmdLine>@(_RestoreToolsPropArgs, ' ') + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/Microsoft.DotNet.Arcade.Sdk/tools/BuildReleasePackages.targets b/src/Microsoft.DotNet.Arcade.Sdk/tools/BuildReleasePackages.targets new file mode 100644 index 00000000000..d52ad87e012 --- /dev/null +++ b/src/Microsoft.DotNet.Arcade.Sdk/tools/BuildReleasePackages.targets @@ -0,0 +1,27 @@ + + + + + $(MSBuildAllProjects);$(MSBuildThisFileFullPath) + + + + <_NuGetRepackAssembly Condition="'$(MSBuildRuntimeType)' != 'Core'">$(NuGetPackageRoot)roslyntools.nugetrepack.buildtasks\$(RoslynToolsNuGetRepackVersion)\tools\net461\RoslynTools.NuGetRepack.BuildTasks.dll + <_NuGetRepackAssembly Condition="'$(MSBuildRuntimeType)' == 'Core'">$(NuGetPackageRoot)roslyntools.nugetrepack.buildtasks\$(RoslynToolsNuGetRepackVersion)\tools\netcoreapp2.0\RoslynTools.NuGetRepack.BuildTasks.dll + + + + + + + + + + <_BuiltPackages Include="$(PackageOutputPath)*.nupkg" /> + + + + + + + diff --git a/src/Microsoft.DotNet.Arcade.Sdk/tools/BuildStep.props b/src/Microsoft.DotNet.Arcade.Sdk/tools/BuildStep.props new file mode 100644 index 00000000000..064e50f3d08 --- /dev/null +++ b/src/Microsoft.DotNet.Arcade.Sdk/tools/BuildStep.props @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/src/Microsoft.DotNet.Arcade.Sdk/tools/BuildTasks.props b/src/Microsoft.DotNet.Arcade.Sdk/tools/BuildTasks.props new file mode 100644 index 00000000000..098a5577896 --- /dev/null +++ b/src/Microsoft.DotNet.Arcade.Sdk/tools/BuildTasks.props @@ -0,0 +1,11 @@ + + + + + $(MSBuildAllProjects);$(MSBuildThisFileFullPath) + + + $(MSBuildThisFileDirectory)net461\Microsoft.DotNet.Arcade.Sdk.dll + $(MSBuildThisFileDirectory)netcoreapp2.0\Microsoft.DotNet.Arcade.Sdk.dll + + diff --git a/src/Microsoft.DotNet.Arcade.Sdk/tools/Compiler.props b/src/Microsoft.DotNet.Arcade.Sdk/tools/Compiler.props new file mode 100644 index 00000000000..a2cd33c706d --- /dev/null +++ b/src/Microsoft.DotNet.Arcade.Sdk/tools/Compiler.props @@ -0,0 +1,16 @@ + + + + + + $(MSBuildAllProjects);$(MSBuildThisFileFullPath) + + + + + + + + + + diff --git a/src/Microsoft.DotNet.Arcade.Sdk/tools/DefaultVersions.props b/src/Microsoft.DotNet.Arcade.Sdk/tools/DefaultVersions.props new file mode 100644 index 00000000000..90af6672b11 --- /dev/null +++ b/src/Microsoft.DotNet.Arcade.Sdk/tools/DefaultVersions.props @@ -0,0 +1,94 @@ + + + + + + + + $(MSBuildAllProjects);$(MSBuildThisFileFullPath) + + + + false + true + + + + + + + + true + true + true + + + true + + + false + false + false + false + false + + + 1.0.147 + 0.2.0 + 4.7.1-alpha-00001 + 2.8.0 + $(MicrosoftNetCompilersVersion) + + 15.6.0-dev + 1.0.0-alpha-003 + 15.1.192 + 1.1.0-beta1-62506-02 + 1.0.0-beta2-63011-06 + 1.0.0-beta2-63011-06 + 1.0.0-beta2-63011-06 + 0.2.0-beta-63004-01 + 2.3.1 + $(XUnitVersion) + $(XUnitVersion) + 2.2.0-prerelease-02431-01 + 1.0.0-beta-63001-01 + 1.0.0-beta-63008-01 + + + + + + + + + + + + $(DotNetRestoreSources) + + + + $(RestoreSources);https://api.nuget.org/v3/index.json + $(RestoreSources);https://dotnet.myget.org/F/dotnet-core/api/v3/index.json + $(RestoreSources);https://dotnet.myget.org/F/roslyn/api/v3/index.json + $(RestoreSources);https://dotnet.myget.org/F/roslyn-tools/api/v3/index.json + $(RestoreSources);https://www.myget.org/F/xunit/api/v3/index.json + $(RestoreSources);https://dotnet.myget.org/F/sourcelink/api/v3/index.json + + + $(RestoreSources);https://dotnet.myget.org/F/roslyn-tools/api/v3/index.json + + + $(__ExternalRestoreSources);$(RestoreSources) + + $(DotNetRestoreSources);$(RestoreSources) + + diff --git a/src/Microsoft.DotNet.Arcade.Sdk/tools/Directory.Build.props b/src/Microsoft.DotNet.Arcade.Sdk/tools/Directory.Build.props new file mode 100644 index 00000000000..cf497094cca --- /dev/null +++ b/src/Microsoft.DotNet.Arcade.Sdk/tools/Directory.Build.props @@ -0,0 +1,5 @@ + + + + \ No newline at end of file diff --git a/src/Microsoft.DotNet.Arcade.Sdk/tools/Directory.Build.targets b/src/Microsoft.DotNet.Arcade.Sdk/tools/Directory.Build.targets new file mode 100644 index 00000000000..75d88ba47ac --- /dev/null +++ b/src/Microsoft.DotNet.Arcade.Sdk/tools/Directory.Build.targets @@ -0,0 +1,5 @@ + + + + \ No newline at end of file diff --git a/src/Microsoft.DotNet.Arcade.Sdk/tools/Empty.targets b/src/Microsoft.DotNet.Arcade.Sdk/tools/Empty.targets new file mode 100644 index 00000000000..0615c16e5f8 --- /dev/null +++ b/src/Microsoft.DotNet.Arcade.Sdk/tools/Empty.targets @@ -0,0 +1,22 @@ + + + + + + $(MSBuildAllProjects);$(MSBuildThisFileFullPath) + + + + + + + + + + + diff --git a/src/Microsoft.DotNet.Arcade.Sdk/tools/GenerateInternalsVisibleTo.targets b/src/Microsoft.DotNet.Arcade.Sdk/tools/GenerateInternalsVisibleTo.targets new file mode 100644 index 00000000000..3297a690bd9 --- /dev/null +++ b/src/Microsoft.DotNet.Arcade.Sdk/tools/GenerateInternalsVisibleTo.targets @@ -0,0 +1,48 @@ + + + + + + $(MSBuildAllProjects);$(MSBuildThisFileFullPath) + + + + $(IntermediateOutputPath)$(MSBuildProjectName).InternalsVisibleTo$(DefaultLanguageSourceExtension) + + + + + false + + + + + + <_InternalsVisibleToAttribute Include="System.Runtime.CompilerServices.InternalsVisibleToAttribute"> + <_Parameter1 Condition="'%(InternalsVisibleTo.Key)' != ''">%(InternalsVisibleTo.Identity), PublicKey=%(InternalsVisibleTo.Key) + <_Parameter1 Condition="'%(InternalsVisibleTo.Key)' == ''">%(InternalsVisibleTo.Identity), PublicKey=$(PublicKey) + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/Microsoft.DotNet.Arcade.Sdk/tools/GenerateResxSource.targets b/src/Microsoft.DotNet.Arcade.Sdk/tools/GenerateResxSource.targets new file mode 100644 index 00000000000..0c724b3074b --- /dev/null +++ b/src/Microsoft.DotNet.Arcade.Sdk/tools/GenerateResxSource.targets @@ -0,0 +1,70 @@ + + + + + + + + $(MSBuildAllProjects);$(MSBuildThisFileFullPath) + + + + + + + + MSBuild:_GenerateResxSource + + + + + + + + + + + + + + + %(EmbeddedResource.Namespace).%(EmbeddedResource.Filename) + + + + + + + + + + + + <_EmbeddedResourceSourceExtension Condition="'$(Language)' == 'C#'">cs + <_EmbeddedResourceSourceExtension Condition="'$(Language)' == 'VB'">vb + <_EmbeddedResourceSourceExtension Condition="'$(Language)' == 'F#'">fs + + + + + + $(IntermediateOutputPath)%(EmbeddedResourceSG.ManifestResourceName).$(_EmbeddedResourceSourceExtension) + + + + + \ No newline at end of file diff --git a/src/Microsoft.DotNet.Arcade.Sdk/tools/Imports.targets b/src/Microsoft.DotNet.Arcade.Sdk/tools/Imports.targets new file mode 100644 index 00000000000..83b367e7058 --- /dev/null +++ b/src/Microsoft.DotNet.Arcade.Sdk/tools/Imports.targets @@ -0,0 +1,41 @@ + + + + + + $(MSBuildAllProjects);$(MSBuildThisFileFullPath) + + + + + + $(__DeployProjectOutput) + + + true + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/Microsoft.DotNet.Arcade.Sdk/tools/Localization.props b/src/Microsoft.DotNet.Arcade.Sdk/tools/Localization.props new file mode 100644 index 00000000000..414ed029833 --- /dev/null +++ b/src/Microsoft.DotNet.Arcade.Sdk/tools/Localization.props @@ -0,0 +1,27 @@ + + + + + + + + $(MSBuildAllProjects);$(MSBuildThisFileFullPath) + + + + true + + + true + + + + + + + \ No newline at end of file diff --git a/src/Microsoft.DotNet.Arcade.Sdk/tools/MSFT.snk b/src/Microsoft.DotNet.Arcade.Sdk/tools/MSFT.snk new file mode 100644 index 00000000000..110b59c7b0d Binary files /dev/null and b/src/Microsoft.DotNet.Arcade.Sdk/tools/MSFT.snk differ diff --git a/src/Microsoft.DotNet.Arcade.Sdk/tools/OptimizationData.targets b/src/Microsoft.DotNet.Arcade.Sdk/tools/OptimizationData.targets new file mode 100644 index 00000000000..012a9106a48 --- /dev/null +++ b/src/Microsoft.DotNet.Arcade.Sdk/tools/OptimizationData.targets @@ -0,0 +1,58 @@ + + + + + + $(MSBuildAllProjects);$(MSBuildThisFileFullPath) + + + + + <_OptimizationDataFile>$([System.IO.Path]::GetFullPath('$(IbcOptimizationDataDir)$(TargetName).pgo')) + $(IntermediateOutputPath)$(TargetFileName).pcbm + + + + + + + + + + + + + + + + + <_RunIbc>false + <_RunIbc Condition="'$(Configuration)' == 'Release' and '$(OfficialBuild)' == 'true'">true + + <_IbcMergePath>$(NuGetPackageRoot)microsoft.dotnet.ibcmerge\$(MicrosoftDotNetIBCMergeVersion)\lib\net45\ibcmerge.exe + <_IbcMergeCommandLineArgs>-q -f -partialNGEN -minify -mo "@(IntermediateAssembly)" -incremental "$(_OptimizationDataFile)" + + + + + + + + + + + + \ No newline at end of file diff --git a/src/Microsoft.DotNet.Arcade.Sdk/tools/Performance.targets b/src/Microsoft.DotNet.Arcade.Sdk/tools/Performance.targets new file mode 100644 index 00000000000..507cb13b0ef --- /dev/null +++ b/src/Microsoft.DotNet.Arcade.Sdk/tools/Performance.targets @@ -0,0 +1,32 @@ + + + + + + $(MSBuildAllProjects);$(MSBuildThisFileFullPath) + + + + + + 10 + $(ArtifactsTestResultsDir)Performance + stopwatch + + + + + + + + + + + + + + + diff --git a/src/Microsoft.DotNet.Arcade.Sdk/tools/ProjectDefaults.props b/src/Microsoft.DotNet.Arcade.Sdk/tools/ProjectDefaults.props new file mode 100644 index 00000000000..e56ec8bb003 --- /dev/null +++ b/src/Microsoft.DotNet.Arcade.Sdk/tools/ProjectDefaults.props @@ -0,0 +1,139 @@ + + + + + + $(MSBuildAllProjects);$(MSBuildThisFileFullPath) + + + + true + MicrosoftShared + SHA256 + true + en-US + Microsoft Corporation + © Microsoft Corporation. All rights reserved. + Microsoft + true + false + true + http://go.microsoft.com/fwlink/?LinkId=529443 + true + $(CIBuild) + + + false + + + portable + embedded + + + + C# + VB + F# + C++ + + + + + + + + + C# + $(MSBuildToolsPath)\Microsoft.CSharp.targets + + + + + + VB + $(MSBuildToolsPath)\Microsoft.VisualBasic.targets + + + + + + + + + + + + + true + $(NoWarn);1701;1702;1705;1591 + + + + true + DEBUG;TRACE + + + + TRACE + true + + + + + + + Empty + Binary + On + On + On + Embed + true + + + + true + true + true + + + + true + true + + + + + + + + false + + + + + + + + + + diff --git a/src/Microsoft.DotNet.Arcade.Sdk/tools/ProjectLayout.props b/src/Microsoft.DotNet.Arcade.Sdk/tools/ProjectLayout.props new file mode 100644 index 00000000000..0f2ad891ac0 --- /dev/null +++ b/src/Microsoft.DotNet.Arcade.Sdk/tools/ProjectLayout.props @@ -0,0 +1,26 @@ + + + + + + + $(MSBuildAllProjects);$(MSBuildThisFileFullPath) + + + + + + $(MSBuildProjectName) + + $([System.IO.Path]::GetFullPath('$(ArtifactsBinDir)$(OutDirName)\')) + $(BaseOutputPath) + $(OutputPath)$(PlatformName)\ + + $([System.IO.Path]::GetFullPath('$(ArtifactsObjDir)$(MSBuildProjectName)\')) + $(BaseIntermediateOutputPath)$(Configuration)\ + $(BaseIntermediateOutputPath)$(PlatformName)\$(Configuration)\ + + + \ No newline at end of file diff --git a/src/Microsoft.DotNet.Arcade.Sdk/tools/Publish.proj b/src/Microsoft.DotNet.Arcade.Sdk/tools/Publish.proj new file mode 100644 index 00000000000..ee97b52422a --- /dev/null +++ b/src/Microsoft.DotNet.Arcade.Sdk/tools/Publish.proj @@ -0,0 +1,134 @@ + + + + + + + + false + true + + false + true + + false + true + + + + + + + + $(ArtifactsTmpDir)SymbolPackages\ + + + + + + + + + $(SymbolPackagesDir)%(Filename).symbols.nupkg + + + + %(PackagesToPublish.Identity) + + + + + + + + + + + + + + + + + + 3650 + false + + + + true + DryRunPTA + DryRunPTA + + + + + + + + + false + + + + + + + + + + + + \ No newline at end of file diff --git a/src/Microsoft.DotNet.Arcade.Sdk/tools/RepoLayout.props b/src/Microsoft.DotNet.Arcade.Sdk/tools/RepoLayout.props new file mode 100644 index 00000000000..ac3e500ad8b --- /dev/null +++ b/src/Microsoft.DotNet.Arcade.Sdk/tools/RepoLayout.props @@ -0,0 +1,78 @@ + + + + + + + + + $(MSBuildAllProjects);$(MSBuildThisFileFullPath) + + + + Debug + AnyCPU + $(Platform) + + + + + $(NUGET_PACKAGES) + $(UserProfile)\.nuget\packages\ + $([System.Environment]::GetFolderPath(SpecialFolder.Personal))\.nuget\packages\ + $(NuGetPackageRoot)\ + + + + + $(DOTNET_INSTALL_DIR) + $(RepoRoot).dotnet\ + $(DotNetRoot)\ + + + + $([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildProjectDirectory), 'global.json'))\ + + + $(RepoRoot)eng\ + $(RepoRoot)build\ + + $(RepositoryEngineeringDir)Versions.props + $(RepositoryEngineeringDir)FixedVersions.props + $(RepositoryEngineeringDir)SignToolData.json + + $(DotNetRoot)dotnet + $(DotNetTool).exe + $(RepoRoot)artifacts\ + $(ArtifactsDir)toolset\ + $(ArtifactsDir)obj\ + $(ArtifactsDir)$(Configuration)\ + $(ArtifactsConfigurationDir)bin\ + $(ArtifactsConfigurationDir)log\ + $(ArtifactsConfigurationDir)tmp\ + $(ArtifactsConfigurationDir)TestResults\ + $(ArtifactsConfigurationDir)SymStore\ + $(ArtifactsConfigurationDir)packages\ + $(ArtifactsConfigurationDir)VSSetup\ + $(VisualStudioSetupOutputPath)Insertion\ + $(ArtifactsConfigurationDir)VSSetup.obj\ + + + \ No newline at end of file diff --git a/src/Microsoft.DotNet.Arcade.Sdk/tools/RepositoryInfo.targets b/src/Microsoft.DotNet.Arcade.Sdk/tools/RepositoryInfo.targets new file mode 100644 index 00000000000..438e861edac --- /dev/null +++ b/src/Microsoft.DotNet.Arcade.Sdk/tools/RepositoryInfo.targets @@ -0,0 +1,16 @@ + + + + + $(MSBuildAllProjects);$(MSBuildThisFileFullPath) + + + + GitHub + + + + + + + \ No newline at end of file diff --git a/src/Microsoft.DotNet.Arcade.Sdk/tools/Settings.props b/src/Microsoft.DotNet.Arcade.Sdk/tools/Settings.props new file mode 100644 index 00000000000..1b51b684e4b --- /dev/null +++ b/src/Microsoft.DotNet.Arcade.Sdk/tools/Settings.props @@ -0,0 +1,25 @@ + + + + + + $(MSBuildAllProjects);$(MSBuildThisFileFullPath) + + true + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/Microsoft.DotNet.Arcade.Sdk/tools/Sign.proj b/src/Microsoft.DotNet.Arcade.Sdk/tools/Sign.proj new file mode 100644 index 00000000000..d276f3d74a6 --- /dev/null +++ b/src/Microsoft.DotNet.Arcade.Sdk/tools/Sign.proj @@ -0,0 +1,40 @@ + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/Microsoft.DotNet.Arcade.Sdk/tools/StrongName.props b/src/Microsoft.DotNet.Arcade.Sdk/tools/StrongName.props new file mode 100644 index 00000000000..ea5d3133775 --- /dev/null +++ b/src/Microsoft.DotNet.Arcade.Sdk/tools/StrongName.props @@ -0,0 +1,15 @@ + + + + + + $(MSBuildAllProjects);$(MSBuildThisFileFullPath) + + + + 0024000004800000940000000602000000240000525341310004000001000100b5fc90e7027f67871e773a8fde8938c81dd402ba65b9201d60593e96c492651e889cc13f1415ebb53fac1131ae0bd333c5ee6021672d9718ea31a8aebd0da0072f25d87dba6fc90ffd598ed4da35e44c398c454307e8e33b8426143daec9f596836f97c8f74750e5975c64e2189f45def46b2a2b1247adc3652bf5c308055da9 + 002400000480000094000000060200000024000052534131000400000100010007d1fa57c4aed9f0a32e84aa0faefd0de9e8fd6aec8f87fb03766c834c99921eb23be79ad9d5dcc1dd9ad236132102900b723cf980957fc4e177108fc607774f29e8320e92ea05ece4e821c0a5efe8f1645c4c0c93c1ab99285d622caa652c1dfad63d745d6f2de5f17e5eaf0fc4963d261c8a12436518206dc093344d5ad293 + 0024000004800000940000000602000000240000525341310004000001000100f33a29044fa9d740c9b3213a93e57c84b472c84e0b8a0e1ae48e67a9f8f6de9d5f7f3d52ac23e48ac51801f1dc950abe901da34d2a9e3baadb141a17c77ef3c565dd5ee5054b91cf63bb3c6ab83f72ab3aafe93d0fc3c2348b764fafb0b1c0733de51459aeab46580384bf9d74c4e28164b7cde247f891ba07891c9d872ad2bb + + + \ No newline at end of file diff --git a/src/Microsoft.DotNet.Arcade.Sdk/tools/StrongName.targets b/src/Microsoft.DotNet.Arcade.Sdk/tools/StrongName.targets new file mode 100644 index 00000000000..a0b9649f107 --- /dev/null +++ b/src/Microsoft.DotNet.Arcade.Sdk/tools/StrongName.targets @@ -0,0 +1,64 @@ + + + + + + + + $(MSBuildAllProjects);$(MSBuildThisFileFullPath) + + + + false + true + + + + + + + $(MSBuildThisFileDirectory)MSFT.snk + $(MicrosoftPublicKey) + b03f5f7f11d50a3a + + + + + $(MSBuildThisFileDirectory)35MSSharedLib1024.snk + $(MicrosoftSharedPublicKey) + 31BF3856AD364E35 + + + + + $(MSBuildThisFileDirectory)AspNet.snk + $(MicrosoftAspNetPublicKey) + adb9793829ddae60 + false + + + + + + + $(PrepareForBuildDependsOn);VerifyBuildFlags + + + + + + + diff --git a/src/Microsoft.DotNet.Arcade.Sdk/tools/SymStore.targets b/src/Microsoft.DotNet.Arcade.Sdk/tools/SymStore.targets new file mode 100644 index 00000000000..0670b26969e --- /dev/null +++ b/src/Microsoft.DotNet.Arcade.Sdk/tools/SymStore.targets @@ -0,0 +1,110 @@ + + + + + $(MSBuildAllProjects);$(MSBuildThisFileFullPath) + + + + <_DeployToSymStoreTargetName Condition="'$(TargetFrameworks)' == ''">_InnerDeployToSymStore + <_DeployToSymStoreTargetName Condition="'$(TargetFrameworks)' != ''">_OuterDeployToSymStore + + + + + + + <_TargetFramework Include="$(TargetFrameworks)" /> + + + + + + + + <_TargetPdbPath /> + <_TargetPdbPath Condition="'$(DebugType)' != 'embedded'">$([System.IO.Path]::ChangeExtension($(TargetPath), '.pdb')) + + <_SymStoreOutputDir>$(ArtifactsSymStoreDirectory)$(MSBuildProjectName)\$(TargetFramework)\ + <_SymStorePdbPath>$(_SymStoreOutputDir)$(TargetName).pdb + <_SymStoreAssemblyPath>$(_SymStoreOutputDir)$(TargetName)$(TargetExt) + + true + + + + + + + + <_PdbConverterPath>$(NuGetPackageRoot)microsoft.diasymreader.pdb2pdb\$(MicrosoftDiaSymReaderPdb2PdbVersion)\tools\Pdb2Pdb.exe + <_PdbConverterCommandLineArgs>"$(TargetPath)" /out "$(_SymStorePdbPath)" /verbose /srcsvrvar SRC_INDEX=public + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/Microsoft.DotNet.Arcade.Sdk/tools/Tests.props b/src/Microsoft.DotNet.Arcade.Sdk/tools/Tests.props new file mode 100644 index 00000000000..1e88e561e75 --- /dev/null +++ b/src/Microsoft.DotNet.Arcade.Sdk/tools/Tests.props @@ -0,0 +1,42 @@ + + + + + + $(MSBuildAllProjects);$(MSBuildThisFileFullPath) + + + + false + true + + + + false + true + + + + false + true + + + + false + true + + + false + + + + + + + + + + false + + + \ No newline at end of file diff --git a/src/Microsoft.DotNet.Arcade.Sdk/tools/Tools.proj b/src/Microsoft.DotNet.Arcade.Sdk/tools/Tools.proj new file mode 100644 index 00000000000..3f7f9365896 --- /dev/null +++ b/src/Microsoft.DotNet.Arcade.Sdk/tools/Tools.proj @@ -0,0 +1,61 @@ + + + + + + + + net462 + + + + + + $(RestoreSources); + $(ExternalRestoreSources) + + + $(RestoreSources); + https://api.nuget.org/v3/index.json; + https://dotnetfeed.blob.core.windows.net/dotnet-tools-internal/index.json; + https://dotnet.myget.org/F/roslyn-tools/api/v3/index.json + + + $(RestoreSources); + https://dotnet.myget.org/F/dotnet-buildtools/api/v3/index.json + + + $(RestoreSources); + https://dotnet.myget.org/F/symreader-converter/api/v3/index.json + + + $(RestoreSources); + https://dotnetfeed.blob.core.windows.net/dotnet-core/index.json + + + + + + + + + + + + + + + + + + diff --git a/src/Microsoft.DotNet.Arcade.Sdk/tools/Version.props b/src/Microsoft.DotNet.Arcade.Sdk/tools/Version.props new file mode 100644 index 00000000000..9b09d5c94ab --- /dev/null +++ b/src/Microsoft.DotNet.Arcade.Sdk/tools/Version.props @@ -0,0 +1,59 @@ + + + + + + + + $(MSBuildAllProjects);$(MSBuildThisFileFullPath) + + + + + + + <_BuildNumberFiveDigitDateStamp>$([MSBuild]::Subtract($(BUILD_BUILDNUMBER.Split($([System.Convert]::ToString(`.`).ToCharArray())).GetValue($([System.Convert]::ToInt32(0)))), 20100000)) + <_BuildNumberFiveDigitDateStampYearsToOffset>$([System.Math]::Max($([System.Convert]::ToInt32($([MSBuild]::Subtract($([MSBuild]::Divide($(_BuildNumberFiveDigitDateStamp), 10000)), 6)))), 0)) + <_BuildNumberFiveDigitDateStamp>$([MSBuild]::Subtract($([System.Convert]::ToInt32($(_BuildNumberFiveDigitDateStamp))), $([MSBuild]::Multiply($(_BuildNumberFiveDigitDateStampYearsToOffset), 8800)))) + <_BuildNumberBuildOfTheDayPadded>$(BUILD_BUILDNUMBER.Split($([System.Convert]::ToString(`.`).ToCharArray())).GetValue($([System.Convert]::ToInt32(1))).PadLeft($([System.Convert]::ToInt32(2)), $([System.Convert]::ToChar(`0`)))) + + $(PB_VersionStamp) + $(PB_VersionStamp)-$(_BuildNumberFiveDigitDateStamp)-$(_BuildNumberBuildOfTheDayPadded) + $(PreReleaseVersionLabel)-$(_BuildNumberFiveDigitDateStamp)-$(_BuildNumberBuildOfTheDayPadded) + + + + + + ci + + + + + + dev + + + + + \ No newline at end of file diff --git a/src/Microsoft.DotNet.Arcade.Sdk/tools/Version.targets b/src/Microsoft.DotNet.Arcade.Sdk/tools/Version.targets new file mode 100644 index 00000000000..104ef73392d --- /dev/null +++ b/src/Microsoft.DotNet.Arcade.Sdk/tools/Version.targets @@ -0,0 +1,31 @@ + + + + + + + + $(MSBuildAllProjects);$(MSBuildThisFileFullPath) + + + + + $(VersionPrefix).$(_BuildNumberFiveDigitDateStamp) + $(Version) + + + + 42.42.42.42 + 42.42.42.42 + $(FileVersion) + + + + \ No newline at end of file diff --git a/src/Microsoft.DotNet.Arcade.Sdk/tools/VisualStudio.DesignTimeBuild.targets b/src/Microsoft.DotNet.Arcade.Sdk/tools/VisualStudio.DesignTimeBuild.targets new file mode 100644 index 00000000000..89f57127528 --- /dev/null +++ b/src/Microsoft.DotNet.Arcade.Sdk/tools/VisualStudio.DesignTimeBuild.targets @@ -0,0 +1,18 @@ + + + + + + $(MSBuildAllProjects);$(MSBuildThisFileFullPath) + + + + + + + \ No newline at end of file diff --git a/src/Microsoft.DotNet.Arcade.Sdk/tools/VisualStudio.ImportSdk.targets b/src/Microsoft.DotNet.Arcade.Sdk/tools/VisualStudio.ImportSdk.targets new file mode 100644 index 00000000000..2ab9ef24eaf --- /dev/null +++ b/src/Microsoft.DotNet.Arcade.Sdk/tools/VisualStudio.ImportSdk.targets @@ -0,0 +1,11 @@ + + + + + + $(MSBuildAllProjects);$(MSBuildThisFileFullPath) + + + + + \ No newline at end of file diff --git a/src/Microsoft.DotNet.Arcade.Sdk/tools/VisualStudio.InsertionManifests.targets b/src/Microsoft.DotNet.Arcade.Sdk/tools/VisualStudio.InsertionManifests.targets new file mode 100644 index 00000000000..e8737702939 --- /dev/null +++ b/src/Microsoft.DotNet.Arcade.Sdk/tools/VisualStudio.InsertionManifests.targets @@ -0,0 +1,37 @@ + + + + $(MSBuildAllProjects);$(MSBuildThisFileFullPath) + + + + <_StubFiles Include="$(VisualStudioSetupIntermediateOutputPath)**\*.stub"/> + <_StubDirs Include="@(_StubFiles->'%(RecursiveDir)')"/> + + + + + + <_ComponentDir>%(_StubDirs.Identity) + <_ComponentName>$(_ComponentDir.TrimEnd('\')) + + + + <_Args Include="ComponentName=$(_ComponentName)"/> + <_Args Include="SetupOutputPath=$(VisualStudioSetupInsertionPath)"/> + <_Args Include="ComponentIntermediateOutputPath=$(VisualStudioSetupIntermediateOutputPath)$(_ComponentName)\"/> + <_Args Include="SwixBuildPath=$(NuGetPackageRoot)microbuild.plugins.swixbuild\$(MicroBuildPluginsSwixBuildVersion)\"/> + + + + + + + + diff --git a/src/Microsoft.DotNet.Arcade.Sdk/tools/VisualStudio.SetupPackage.swixproj b/src/Microsoft.DotNet.Arcade.Sdk/tools/VisualStudio.SetupPackage.swixproj new file mode 100644 index 00000000000..6600af919ca --- /dev/null +++ b/src/Microsoft.DotNet.Arcade.Sdk/tools/VisualStudio.SetupPackage.swixproj @@ -0,0 +1,37 @@ + + + + + + v4.6 + neutral + false + vsix + true + $(SwrPackageName) + + + + + + <_SwrProperties Include="$([MSBuild]::Unescape($(SwrProperties)))" /> + + + + $(PackagePreprocessorDefinitions);@(_SwrProperties) + $(IntermediateOutputPath) + + + + + + + + \ No newline at end of file diff --git a/src/Microsoft.DotNet.Arcade.Sdk/tools/VisualStudio.SetupPackage.vsmanproj b/src/Microsoft.DotNet.Arcade.Sdk/tools/VisualStudio.SetupPackage.vsmanproj new file mode 100644 index 00000000000..8f99fdb4b4e --- /dev/null +++ b/src/Microsoft.DotNet.Arcade.Sdk/tools/VisualStudio.SetupPackage.vsmanproj @@ -0,0 +1,39 @@ + + + + + + false + false + false + + + + + + true + true + true + v4.6 + $(ComponentName) + $(SetupOutputPath) + $(ComponentIntermediateOutputPath) + + + + <_PackageStubFiles Include="$(ComponentIntermediateOutputPath)*.stub"/> + + + + + false + + + + diff --git a/src/Microsoft.DotNet.Arcade.Sdk/tools/VisualStudio.props b/src/Microsoft.DotNet.Arcade.Sdk/tools/VisualStudio.props new file mode 100644 index 00000000000..85dbf2e40e8 --- /dev/null +++ b/src/Microsoft.DotNet.Arcade.Sdk/tools/VisualStudio.props @@ -0,0 +1,37 @@ + + + + + + $(MSBuildAllProjects);$(MSBuildThisFileFullPath) + + + + + $(MSBuildProjectDirectory)\source.extension.vsixmanifest + false + true + + + + + + + + false + + Program + $(DevEnvDir)devenv.exe + /rootsuffix $(VSSDKTargetPlatformRegRootSuffix) /log + + true + true + All + 3 + + + + true + + + \ No newline at end of file diff --git a/src/Microsoft.DotNet.Arcade.Sdk/tools/VisualStudio.targets b/src/Microsoft.DotNet.Arcade.Sdk/tools/VisualStudio.targets new file mode 100644 index 00000000000..b2f431b0015 --- /dev/null +++ b/src/Microsoft.DotNet.Arcade.Sdk/tools/VisualStudio.targets @@ -0,0 +1,256 @@ + + + + + + + + $(MSBuildAllProjects);$(MSBuildThisFileFullPath) + + + + + <_TargetVsixContainerDir>$(VisualStudioSetupOutputPath) + + $(TargetName).vsix + $(_TargetVsixContainerDir)$(TargetVsixContainerName) + + false + true + + <_ComponentIntermediateDir Condition="'$(VisualStudioInsertionComponent)' != ''">$(VisualStudioSetupIntermediateOutputPath)$(VisualStudioInsertionComponent)\ + + + + + + <_VsxXmlNamespace><Namespace Prefix='vsx' Uri='http://schemas.microsoft.com/developer/vsx-schema/2011'/> + + + + + + + + + + + + + + + <_PackageStubFile>$(_ComponentIntermediateDir)$(_VsixPackageId).stub + + + + + + + + + + + + + + + + + + + + + + + + + + <_JsonFileName>$(_VsixPackageId).json + + + + <_FinalizeInsertionVsixFilesInputs Include="$(VisualStudioSetupOutputPath)$(TargetVsixContainerName)" /> + <_FinalizeInsertionVsixFilesInputs Include="$(VisualStudioSetupOutputPath)$(_JsonFileName)" /> + + <_FinalizeInsertionVsixFilesOutputs Include="$(VisualStudioSetupInsertionPath)$(TargetVsixContainerName)" /> + <_FinalizeInsertionVsixFilesOutputs Include="$(VisualStudioSetupInsertionPath)$(_JsonFileName)" /> + + + + + + + + + + + <_ModifyVsixManifestToolExe>$(NuGetPackageRoot)roslyntools.modifyvsixmanifest\$(RoslynToolsModifyVsixManifestVersion)\tools\ModifyVsixManifest.exe + <_ModifyVsixManifestArgs>--remove=//x:PackageManifest/x:Installation/@Experimental --add-attribute=//x:PackageManifest/x:Installation;SystemComponent;true + + + + + + + + + + + + + + <_SwrProperties>@(SwrProperty) + <_SwrFiles>@(SwrFile->'%(FullPath)') + + + <_SwixArgs Include="SwrProperties=$([MSBuild]::Escape($(_SwrProperties)))"/> + <_SwixArgs Include="SwrFiles=$([MSBuild]::Escape($(_SwrFiles)))"/> + <_SwixArgs Include="SwrPackageName=$(TargetName)"/> + <_SwixArgs Include="IntermediateOutputPath=$(IntermediateOutputPath)"/> + <_SwixArgs Include="SwixBuildPath=$(NuGetPackageRoot)microbuild.plugins.swixbuild\$(MicroBuildPluginsSwixBuildVersion)\"/> + + + + + + + + + + + + + + + <_PackageStubFile>$(_ComponentIntermediateDir)$(TargetName).stub + + + + + + + <_GeneratedCTOFilesWithCulture Include="@(_GeneratedCTOFilesWithNoCulture)"> + en + true + + <_GeneratedCTOFilesWithNoCulture Remove="@(_GeneratedCTOFilesWithNoCulture)" /> + <_ResourcesToMergeWithCTOWithCultureMetadata Condition="'%(WithCulture)' != 'true'"> + en + true + + + + + + + + + + + + + + + %(IntermediateZipItem.Filename)\%(IntermediateZipItem.Language)\%(IntermediateZipItem.OutputSubPath)\%(IntermediateZipItem.Culture) + + + %(IntermediateZipProject.Filename)\%(IntermediateZipProject.Language)\%(IntermediateZipProject.OutputSubPath)\%(IntermediateZipProject.Culture) + + + + + $(GetVsixSourceItemsDependsOn);_GetVsixTemplateItems + + + + + + <_VsixVersion Condition="'$(OfficialBuild)' == 'true'">$(VersionPrefix).$(_BuildNumberFiveDigitDateStamp)$(_BuildNumberBuildOfTheDayPadded) + <_VsixVersion Condition="'$(OfficialBuild)' != 'true'">42.42.42.42 + + + + diff --git a/src/Microsoft.DotNet.Arcade.Sdk/tools/Workarounds.targets b/src/Microsoft.DotNet.Arcade.Sdk/tools/Workarounds.targets new file mode 100644 index 00000000000..9f75860f28f --- /dev/null +++ b/src/Microsoft.DotNet.Arcade.Sdk/tools/Workarounds.targets @@ -0,0 +1,131 @@ + + + + + + $(MSBuildAllProjects);$(MSBuildThisFileFullPath) + + + + + $(MSBuildProjectFullPath) + + + + + + + true + + + + + + + false + + + + + + + + + + + $(IntermediateOutputPath)$(TargetFrameworkMoniker).AssemblyAttributes$(DefaultLanguageSourceExtension) + + + + + $(AllowedOutputExtensionsInPackageBuildOutputFolder);.pdb + + + + + + + $(RepositoryUrl) + + + + + + + <_Prop Include="PackageId=$(PackageId)"/> + <_Prop Include="Authors=$(Authors)"/> + <_Prop Include="Description=$(Description)"/> + <_Prop Include="Copyright=$(Copyright)"/> + <_Prop Include="Version=$(Version)"/> + <_Prop Include="Serviceable=$(Serviceable)"/> + <_Prop Include="DevelopmentDependency=$(DevelopmentDependency)"/> + <_Prop Include="RequireLicenseAcceptance=$(PackageRequireLicenseAcceptance)"/> + <_Prop Include="PackageLicenseUrl=$(PackageLicenseUrl)"/> + <_Prop Include="PackageProjectUrl=$(PackageProjectUrl)"/> + <_Prop Include="PackageIconUrl=$(PackageIconUrl)" Condition="'$(PackageIconUrl)' != ''" /> + <_Prop Include="PackageReleaseNotes=$(PackageReleaseNotes)" Condition="'$(PackageReleaseNotes)' != ''" /> + <_Prop Include="PackageTags=$(PackageTags)" Condition="'$(PackageTags)' != ''" /> + <_Prop Include="RepositoryUrl=$(RepositoryUrl)" Condition="'$(RepositoryUrl)' != ''" /> + <_Prop Include="RepositoryType=$(RepositoryType)" Condition="'$(RepositoryType)' != ''" /> + <_Prop Include="RepositoryCommit=$(RepositoryCommit)" Condition="'$(RepositoryCommit)' != ''" /> + <_Prop Include="ProjectDirectory=$(MSBuildProjectDirectory)"/> + + + @(_Prop, ';') + + + + + + + + $(PrivateRepositoryUrl) + $(SourceRevisionId) + + + + + + Publish;$(TargetsForTfmSpecificContentInPackage) + + + + + + true + + + diff --git a/src/Microsoft.DotNet.Arcade.Sdk/tools/XUnit.props b/src/Microsoft.DotNet.Arcade.Sdk/tools/XUnit.props new file mode 100644 index 00000000000..5c09fa84724 --- /dev/null +++ b/src/Microsoft.DotNet.Arcade.Sdk/tools/XUnit.props @@ -0,0 +1,17 @@ + + + + + + $(MSBuildAllProjects);$(MSBuildThisFileFullPath) + + + + + + + + + + + \ No newline at end of file diff --git a/src/Microsoft.DotNet.Arcade.Sdk/tools/XUnit.targets b/src/Microsoft.DotNet.Arcade.Sdk/tools/XUnit.targets new file mode 100644 index 00000000000..69118207a61 --- /dev/null +++ b/src/Microsoft.DotNet.Arcade.Sdk/tools/XUnit.targets @@ -0,0 +1,109 @@ + + + + + + $(MSBuildAllProjects);$(MSBuildThisFileFullPath) + + + + true + <_TestTargetName Condition="'$(TargetFrameworks)' == ''">InnerTest + <_TestTargetName Condition="'$(TargetFrameworks)' != ''">OuterTest + + + + $(PlatformTarget) + x64 + + + + + + + <_TestArchitectureItems Include="$(TestArchitectures)" /> + + + + + + + <_TestArchitecture>%(_TestArchitectureItems.Identity) + <_TestEnvironment>$(TargetFramework)|$(_TestArchitecture) + <_TestOutPathNoExt>$(ArtifactsTestResultsDir)$(MSBuildProjectName)_$(TargetFramework)_$(_TestArchitecture) + <_TestStdOutPath>$(_TestOutPathNoExt).log + <_TestResultsXmlPath>$(_TestOutPathNoExt).xml + <_TestResultsHtmlPath>$(_TestOutPathNoExt).html + <_RunOnCore>false + <_RunOnCore Condition="$(TargetFramework.StartsWith('netcoreapp'))">true + + + + + + <_TargetFileNameNoExt>$([System.IO.Path]::GetFileNameWithoutExtension('$(TargetFileName)')) + <_CoreRuntimeConfigPath>$(TargetDir)$(_TargetFileNameNoExt).runtimeconfig.json + <_CoreDepsPath>$(TargetDir)$(_TargetFileNameNoExt).deps.json + + + <_TestRunnerCommand>"$(DotNetTool)" exec --depsfile "$(_CoreDepsPath)" --runtimeconfig "$(_CoreRuntimeConfigPath)" "$(NuGetPackageRoot)xunit.runner.console/$(XUnitVersion)/tools/netcoreapp1.0/xunit.console.dll" "$(TargetPath)" -noautoreporters -xml "$(_TestResultsXmlPath)" $(XUnitRunnerAdditionalArguments) + <_TestResultsDisplayPath>$(_TestStdOutPath) + + + + <_XUnitConsoleExe>xunit.console.exe + <_XUnitConsoleExe Condition="'$(_TestArchitecture)' == 'x86'">xunit.console.x86.exe + <_TestRunnerCommand>"$(NuGetPackageRoot)xunit.runner.console\$(XUnitVersion)\tools\net452\$(_XUnitConsoleExe)" "$(TargetPath)" -noshadow -xml "$(_TestResultsXmlPath)" -html "$(_TestResultsHtmlPath)" $(XUnitRunnerAdditionalArguments) + <_TestResultsDisplayPath>$(_TestResultsHtmlPath) + + + + + + + + + + + + + + + + + <_FailedTestRuns Include="$(_TestEnvironment)" Condition="'$(_TestErrorCode)' != '0'" /> + + + + + + + + + + <_TargetFramework Include="$(TargetFrameworks)" /> + + + + + + + + + + + + + + diff --git a/src/Microsoft.DotNet.Arcade.Sdk/tools/vswhere.exe b/src/Microsoft.DotNet.Arcade.Sdk/tools/vswhere.exe new file mode 100644 index 00000000000..3d91a17dc4b Binary files /dev/null and b/src/Microsoft.DotNet.Arcade.Sdk/tools/vswhere.exe differ diff --git a/src/Microsoft.DotNet.Build.Tasks.Feed/Microsoft.DotNet.Build.Tasks.Feed.csproj b/src/Microsoft.DotNet.Build.Tasks.Feed/Microsoft.DotNet.Build.Tasks.Feed.csproj index 226d6ef18c9..6d39fa1f279 100644 --- a/src/Microsoft.DotNet.Build.Tasks.Feed/Microsoft.DotNet.Build.Tasks.Feed.csproj +++ b/src/Microsoft.DotNet.Build.Tasks.Feed/Microsoft.DotNet.Build.Tasks.Feed.csproj @@ -18,7 +18,7 @@ This package provides support for publishing assets to a nuget protocol based feed. - + win7-x64 $(PackageTargetFallback);net46 @@ -33,10 +33,10 @@ - + - + @@ -50,7 +50,7 @@ - + diff --git a/src/Microsoft.DotNet.Build.Tasks.Feed/Microsoft.DotNet.Build.Tasks.Feed.nuspec b/src/Microsoft.DotNet.Build.Tasks.Feed/Microsoft.DotNet.Build.Tasks.Feed.nuspec index 2cbf8cc9c46..ede84811cf5 100644 --- a/src/Microsoft.DotNet.Build.Tasks.Feed/Microsoft.DotNet.Build.Tasks.Feed.nuspec +++ b/src/Microsoft.DotNet.Build.Tasks.Feed/Microsoft.DotNet.Build.Tasks.Feed.nuspec @@ -25,7 +25,7 @@ - +