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 @@
-
+