diff --git a/Directory.Build.props b/Directory.Build.props
index 97a615453..4a8c44efd 100644
--- a/Directory.Build.props
+++ b/Directory.Build.props
@@ -57,6 +57,7 @@ tools\TestAssetsDependencies\TestAssetsDependencies.csproj
+
diff --git a/Documentation/README.md b/Documentation/README.md
index 9d211c0a2..bc87241c0 100644
--- a/Documentation/README.md
+++ b/Documentation/README.md
@@ -8,6 +8,7 @@ Documents Index
- [.NET Core native pre-requisities document](https://github.com/dotnet/core/blob/master/Documentation/prereqs.md)
- [Roadmap and OS support](https://github.com/dotnet/core/blob/master/roadmap.md)
- [Comprehensive CLI documentation](https://docs.microsoft.com/en-us/dotnet/articles/core/preview3/tools/)
+- [ASP.NET Core Command Line Tools](general/aspnetcore-tools.md)
## Working with the CLI repo
diff --git a/Documentation/general/aspnetcore-tools.md b/Documentation/general/aspnetcore-tools.md
new file mode 100644
index 000000000..371c1a443
--- /dev/null
+++ b/Documentation/general/aspnetcore-tools.md
@@ -0,0 +1,10 @@
+ASP.NET Core Command Line Tools
+===============================
+
+The .NET Core CLI includes some commands that are specific to ASP.NET Core projects.
+
+ - dotnet dev-certs
+ - dotnet user-secrets
+ - dotnet sql-cache
+
+For more information on these tools, see .
diff --git a/Microsoft.DotNet.Cli.sln b/Microsoft.DotNet.Cli.sln
index 0748db81a..855541357 100644
--- a/Microsoft.DotNet.Cli.sln
+++ b/Microsoft.DotNet.Cli.sln
@@ -1,3 +1,4 @@
+
Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio 15
VisualStudioVersion = 15.0.27130.2020
@@ -232,8 +233,14 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.DotNet.ShellShim.
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.DotNet.ToolPackage.Tests", "test\Microsoft.DotNet.ToolPackage.Tests\Microsoft.DotNet.ToolPackage.Tests.csproj", "{91BFE800-1624-4A58-A1CE-339705A8FFD0}"
EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.DotNet.Tools.Tests.ComponentMocks", "test\Microsoft.DotNet.Tools.Tests.ComponentMocks\Microsoft.DotNet.Tools.Tests.ComponentMocks.csproj", "{E442F4C1-08DB-470F-B9A6-197444CD0295}"
+EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "tool_launcher", "src\tool_launcher\tool_launcher.csproj", "{EDF19BE6-F20F-4AD0-8E3B-E837030726A5}"
EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "dotnet-install-tool.Tests", "test\dotnet-install-tool.Tests\dotnet-install-tool.Tests.csproj", "{8FE9D802-57F3-493B-9E14-72DF905E3838}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.DotNet.MSBuildSdkResolver.Tests", "test\Microsoft.DotNet.MSBuildSdkResolver.Tests\Microsoft.DotNet.MSBuildSdkResolver.Tests.csproj", "{B7C82980-F01D-4B8A-A746-BFA0032CB152}"
+EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
@@ -1642,6 +1649,30 @@ Global
{91BFE800-1624-4A58-A1CE-339705A8FFD0}.RelWithDebInfo|x64.Build.0 = Release|Any CPU
{91BFE800-1624-4A58-A1CE-339705A8FFD0}.RelWithDebInfo|x86.ActiveCfg = Release|Any CPU
{91BFE800-1624-4A58-A1CE-339705A8FFD0}.RelWithDebInfo|x86.Build.0 = Release|Any CPU
+ {E442F4C1-08DB-470F-B9A6-197444CD0295}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {E442F4C1-08DB-470F-B9A6-197444CD0295}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {E442F4C1-08DB-470F-B9A6-197444CD0295}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {E442F4C1-08DB-470F-B9A6-197444CD0295}.Debug|x64.Build.0 = Debug|Any CPU
+ {E442F4C1-08DB-470F-B9A6-197444CD0295}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {E442F4C1-08DB-470F-B9A6-197444CD0295}.Debug|x86.Build.0 = Debug|Any CPU
+ {E442F4C1-08DB-470F-B9A6-197444CD0295}.MinSizeRel|Any CPU.ActiveCfg = Debug|Any CPU
+ {E442F4C1-08DB-470F-B9A6-197444CD0295}.MinSizeRel|Any CPU.Build.0 = Debug|Any CPU
+ {E442F4C1-08DB-470F-B9A6-197444CD0295}.MinSizeRel|x64.ActiveCfg = Debug|Any CPU
+ {E442F4C1-08DB-470F-B9A6-197444CD0295}.MinSizeRel|x64.Build.0 = Debug|Any CPU
+ {E442F4C1-08DB-470F-B9A6-197444CD0295}.MinSizeRel|x86.ActiveCfg = Debug|Any CPU
+ {E442F4C1-08DB-470F-B9A6-197444CD0295}.MinSizeRel|x86.Build.0 = Debug|Any CPU
+ {E442F4C1-08DB-470F-B9A6-197444CD0295}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {E442F4C1-08DB-470F-B9A6-197444CD0295}.Release|Any CPU.Build.0 = Release|Any CPU
+ {E442F4C1-08DB-470F-B9A6-197444CD0295}.Release|x64.ActiveCfg = Release|Any CPU
+ {E442F4C1-08DB-470F-B9A6-197444CD0295}.Release|x64.Build.0 = Release|Any CPU
+ {E442F4C1-08DB-470F-B9A6-197444CD0295}.Release|x86.ActiveCfg = Release|Any CPU
+ {E442F4C1-08DB-470F-B9A6-197444CD0295}.Release|x86.Build.0 = Release|Any CPU
+ {E442F4C1-08DB-470F-B9A6-197444CD0295}.RelWithDebInfo|Any CPU.ActiveCfg = Release|Any CPU
+ {E442F4C1-08DB-470F-B9A6-197444CD0295}.RelWithDebInfo|Any CPU.Build.0 = Release|Any CPU
+ {E442F4C1-08DB-470F-B9A6-197444CD0295}.RelWithDebInfo|x64.ActiveCfg = Release|Any CPU
+ {E442F4C1-08DB-470F-B9A6-197444CD0295}.RelWithDebInfo|x64.Build.0 = Release|Any CPU
+ {E442F4C1-08DB-470F-B9A6-197444CD0295}.RelWithDebInfo|x86.ActiveCfg = Release|Any CPU
+ {E442F4C1-08DB-470F-B9A6-197444CD0295}.RelWithDebInfo|x86.Build.0 = Release|Any CPU
{EDF19BE6-F20F-4AD0-8E3B-E837030726A5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{EDF19BE6-F20F-4AD0-8E3B-E837030726A5}.Debug|Any CPU.Build.0 = Debug|Any CPU
{EDF19BE6-F20F-4AD0-8E3B-E837030726A5}.Debug|x64.ActiveCfg = Debug|Any CPU
@@ -1666,6 +1697,54 @@ Global
{EDF19BE6-F20F-4AD0-8E3B-E837030726A5}.RelWithDebInfo|x64.Build.0 = Release|Any CPU
{EDF19BE6-F20F-4AD0-8E3B-E837030726A5}.RelWithDebInfo|x86.ActiveCfg = Release|Any CPU
{EDF19BE6-F20F-4AD0-8E3B-E837030726A5}.RelWithDebInfo|x86.Build.0 = Release|Any CPU
+ {8FE9D802-57F3-493B-9E14-72DF905E3838}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {8FE9D802-57F3-493B-9E14-72DF905E3838}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {8FE9D802-57F3-493B-9E14-72DF905E3838}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {8FE9D802-57F3-493B-9E14-72DF905E3838}.Debug|x64.Build.0 = Debug|Any CPU
+ {8FE9D802-57F3-493B-9E14-72DF905E3838}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {8FE9D802-57F3-493B-9E14-72DF905E3838}.Debug|x86.Build.0 = Debug|Any CPU
+ {8FE9D802-57F3-493B-9E14-72DF905E3838}.MinSizeRel|Any CPU.ActiveCfg = Debug|Any CPU
+ {8FE9D802-57F3-493B-9E14-72DF905E3838}.MinSizeRel|Any CPU.Build.0 = Debug|Any CPU
+ {8FE9D802-57F3-493B-9E14-72DF905E3838}.MinSizeRel|x64.ActiveCfg = Debug|Any CPU
+ {8FE9D802-57F3-493B-9E14-72DF905E3838}.MinSizeRel|x64.Build.0 = Debug|Any CPU
+ {8FE9D802-57F3-493B-9E14-72DF905E3838}.MinSizeRel|x86.ActiveCfg = Debug|Any CPU
+ {8FE9D802-57F3-493B-9E14-72DF905E3838}.MinSizeRel|x86.Build.0 = Debug|Any CPU
+ {8FE9D802-57F3-493B-9E14-72DF905E3838}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {8FE9D802-57F3-493B-9E14-72DF905E3838}.Release|Any CPU.Build.0 = Release|Any CPU
+ {8FE9D802-57F3-493B-9E14-72DF905E3838}.Release|x64.ActiveCfg = Release|Any CPU
+ {8FE9D802-57F3-493B-9E14-72DF905E3838}.Release|x64.Build.0 = Release|Any CPU
+ {8FE9D802-57F3-493B-9E14-72DF905E3838}.Release|x86.ActiveCfg = Release|Any CPU
+ {8FE9D802-57F3-493B-9E14-72DF905E3838}.Release|x86.Build.0 = Release|Any CPU
+ {8FE9D802-57F3-493B-9E14-72DF905E3838}.RelWithDebInfo|Any CPU.ActiveCfg = Debug|Any CPU
+ {8FE9D802-57F3-493B-9E14-72DF905E3838}.RelWithDebInfo|Any CPU.Build.0 = Debug|Any CPU
+ {8FE9D802-57F3-493B-9E14-72DF905E3838}.RelWithDebInfo|x64.ActiveCfg = Debug|Any CPU
+ {8FE9D802-57F3-493B-9E14-72DF905E3838}.RelWithDebInfo|x64.Build.0 = Debug|Any CPU
+ {8FE9D802-57F3-493B-9E14-72DF905E3838}.RelWithDebInfo|x86.ActiveCfg = Debug|Any CPU
+ {8FE9D802-57F3-493B-9E14-72DF905E3838}.RelWithDebInfo|x86.Build.0 = Debug|Any CPU
+ {B7C82980-F01D-4B8A-A746-BFA0032CB152}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {B7C82980-F01D-4B8A-A746-BFA0032CB152}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {B7C82980-F01D-4B8A-A746-BFA0032CB152}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {B7C82980-F01D-4B8A-A746-BFA0032CB152}.Debug|x64.Build.0 = Debug|Any CPU
+ {B7C82980-F01D-4B8A-A746-BFA0032CB152}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {B7C82980-F01D-4B8A-A746-BFA0032CB152}.Debug|x86.Build.0 = Debug|Any CPU
+ {B7C82980-F01D-4B8A-A746-BFA0032CB152}.MinSizeRel|Any CPU.ActiveCfg = Debug|Any CPU
+ {B7C82980-F01D-4B8A-A746-BFA0032CB152}.MinSizeRel|Any CPU.Build.0 = Debug|Any CPU
+ {B7C82980-F01D-4B8A-A746-BFA0032CB152}.MinSizeRel|x64.ActiveCfg = Debug|Any CPU
+ {B7C82980-F01D-4B8A-A746-BFA0032CB152}.MinSizeRel|x64.Build.0 = Debug|Any CPU
+ {B7C82980-F01D-4B8A-A746-BFA0032CB152}.MinSizeRel|x86.ActiveCfg = Debug|Any CPU
+ {B7C82980-F01D-4B8A-A746-BFA0032CB152}.MinSizeRel|x86.Build.0 = Debug|Any CPU
+ {B7C82980-F01D-4B8A-A746-BFA0032CB152}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {B7C82980-F01D-4B8A-A746-BFA0032CB152}.Release|Any CPU.Build.0 = Release|Any CPU
+ {B7C82980-F01D-4B8A-A746-BFA0032CB152}.Release|x64.ActiveCfg = Release|Any CPU
+ {B7C82980-F01D-4B8A-A746-BFA0032CB152}.Release|x64.Build.0 = Release|Any CPU
+ {B7C82980-F01D-4B8A-A746-BFA0032CB152}.Release|x86.ActiveCfg = Release|Any CPU
+ {B7C82980-F01D-4B8A-A746-BFA0032CB152}.Release|x86.Build.0 = Release|Any CPU
+ {B7C82980-F01D-4B8A-A746-BFA0032CB152}.RelWithDebInfo|Any CPU.ActiveCfg = Release|Any CPU
+ {B7C82980-F01D-4B8A-A746-BFA0032CB152}.RelWithDebInfo|Any CPU.Build.0 = Release|Any CPU
+ {B7C82980-F01D-4B8A-A746-BFA0032CB152}.RelWithDebInfo|x64.ActiveCfg = Release|Any CPU
+ {B7C82980-F01D-4B8A-A746-BFA0032CB152}.RelWithDebInfo|x64.Build.0 = Release|Any CPU
+ {B7C82980-F01D-4B8A-A746-BFA0032CB152}.RelWithDebInfo|x86.ActiveCfg = Release|Any CPU
+ {B7C82980-F01D-4B8A-A746-BFA0032CB152}.RelWithDebInfo|x86.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
@@ -1739,7 +1818,10 @@ Global
{E7C72EF2-8480-48B4-AAE8-A596F1A6048E} = {17735A9D-BFD9-4585-A7CB-3208CA6EA8A7}
{E84C08C9-70D7-48B0-9507-ADB8B9A2694C} = {17735A9D-BFD9-4585-A7CB-3208CA6EA8A7}
{91BFE800-1624-4A58-A1CE-339705A8FFD0} = {17735A9D-BFD9-4585-A7CB-3208CA6EA8A7}
+ {E442F4C1-08DB-470F-B9A6-197444CD0295} = {17735A9D-BFD9-4585-A7CB-3208CA6EA8A7}
{EDF19BE6-F20F-4AD0-8E3B-E837030726A5} = {ED2FE3E2-F7E7-4389-8231-B65123F2076F}
+ {8FE9D802-57F3-493B-9E14-72DF905E3838} = {17735A9D-BFD9-4585-A7CB-3208CA6EA8A7}
+ {B7C82980-F01D-4B8A-A746-BFA0032CB152} = {17735A9D-BFD9-4585-A7CB-3208CA6EA8A7}
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {B526D2CE-EE2D-4AD4-93EF-1867D90FF1F5}
diff --git a/README.md b/README.md
index b82995678..c8601e119 100644
--- a/README.md
+++ b/README.md
@@ -9,7 +9,7 @@ Looking for V1 of the .NET Core tooling?
If you are looking for the v2.0 release of the .NET Core tools (CLI, MSBuild and the new csproj), head over to https://dot.net/core and download!
-> **Note:** the release/2.1.3xx branch of the CLI repo is based on an upcoming update of the SDK and is considered pre-release. For production-level usage, please use the
+> **Note:** the master branch of the CLI repo is based on an upcoming update of the SDK and is considered pre-release. For production-level usage, please use the
> released version of the tools available at https://dot.net/core
Found an issue?
@@ -23,9 +23,9 @@ This project has adopted the code of conduct defined by the [Contributor Covenan
Build Status
------------
-|Windows x64|Windows x86|macOS|Linux x64 Archive|Linux Native Installers|RHEL 6 Archive|Alpine 3.6 Archive|
-|:------:|:------:|:------:|:------:|:------:|:------:|:------:|
-|[![][win-x64-build-badge]][win-x64-build]|[![][win-x86-build-badge]][win-x86-build]|[![][osx-build-badge]][osx-build]|[![][linux-build-badge]][linux-build]|[![][linuxnative-build-badge]][linuxnative-build]|[![][rhel6-build-badge]][rhel6-build]|[![][alpine3.6-build-badge]][alpine3.6-build]|
+|Windows x64|Windows x86|macOS|Linux x64 Archive|Linux arm Archive|Linux Native Installers|RHEL 6 Archive|Alpine 3.6 Archive|
+|:------:|:------:|:------:|:------:|:------:|:------:|:------:|:------:|
+|[![][win-x64-build-badge]][win-x64-build]|[![][win-x86-build-badge]][win-x86-build]|[![][osx-build-badge]][osx-build]|[![][linux-build-badge]][linux-build]|[![][linux-arm-build-badge]][linux-arm-build]|[![][linuxnative-build-badge]][linuxnative-build]|[![][rhel6-build-badge]][rhel6-build]|[![][alpine3.6-build-badge]][alpine3.6-build]|
[win-x64-build-badge]: https://devdiv.visualstudio.com/_apis/public/build/definitions/0bdbc590-a062-4c3f-b0f6-9383f67865ee/6902/badge
[win-x64-build]: https://devdiv.visualstudio.com/DevDiv/_build?_a=completed&definitionId=6902
@@ -39,6 +39,9 @@ Build Status
[linux-build-badge]: https://devdiv.visualstudio.com/_apis/public/build/definitions/0bdbc590-a062-4c3f-b0f6-9383f67865ee/6899/badge
[linux-build]: https://devdiv.visualstudio.com/DevDiv/_build?_a=completed&definitionId=6899
+[linux-arm-build-badge]: https://devdiv.visualstudio.com/_apis/public/build/definitions/0bdbc590-a062-4c3f-b0f6-9383f67865ee/8721/badge
+[linux-arm-build]: https://devdiv.visualstudio.com/DevDiv/_build?_a=completed&definitionId=8721
+
[linuxnative-build-badge]: https://devdiv.visualstudio.com/_apis/public/build/definitions/0bdbc590-a062-4c3f-b0f6-9383f67865ee/7254/badge
[linuxnative-build]: https://devdiv.visualstudio.com/DevDiv/_build?_a=completed&definitionId=7254
@@ -59,17 +62,17 @@ To download the .NET Core runtime **without** the SDK, visit https://github.com/
> want to install the latest released versions, check out the [preceding section](#looking-for-v1-of-the-net-core-tooling).
> In order to be able to restore these pre-release packages, you may need to add a NuGet feed pointing to https://dotnet.myget.org/F/dotnet-core/api/v3/index.json. Other feeds may also be necessary depending on what kind of project you are working with.
-| Platform | Latest Daily Build *release/2.1.3xx* [![][version-badge]][version] |
+| Platform | Latest Daily Build *master* [![][version-badge]][version] |
| -------- | :-------------------------------------: |
| **Windows x64** | [Installer][win-x64-installer] - [Checksum][win-x64-installer-checksum] [zip][win-x64-zip] - [Checksum][win-x64-zip-checksum] |
| **Windows x86** | [Installer][win-x86-installer] - [Checksum][win-x86-installer-checksum] [zip][win-x86-zip] - [Checksum][win-x86-zip-checksum] |
| **macOS** | [Installer][osx-installer] - [Checksum][osx-installer-checksum] [tar.gz][osx-targz] - [Checksum][osx-targz-checksum] |
-| **Linux x64** | [DEB Installer][linux-DEB-installer] - [Checksum][linux-DEB-installer-checksum] _see installer note below_1 [tar.gz][linux-targz] - [Checksum][linux-targz-checksum] |
-| **RHEL 7.2** | [Installer][rhel-7-installer] - [Checksum][rhel-7-installer-checksum] [tar.gz][linux-targz] - [Checksum][linux-targz-checksum] |
+| **Linux x64** | [DEB Installer][linux-DEB-installer] - [Checksum][linux-DEB-installer-checksum] [RPM Installer][linux-RPM-installer] - [Checksum][linux-RPM-installer-checksum] _see installer note below_1 [tar.gz][linux-targz] - [Checksum][linux-targz-checksum] |
+| **Linux arm** | [tar.gz][linux-arm-targz] - [Checksum][linux-arm-targz-checksum] |
| **RHEL 6** | [tar.gz][rhel-6-targz] - [Checksum][rhel-6-targz-checksum] |
| **Alpine 3.6** | [tar.gz][alpine-3.6-targz] - [Checksum][alpine-3.6-targz-checksum] |
-| Latest Coherent Build2 *release/2.1.3xx* |
+| Latest Coherent Build2 *master* |
|:------:|
| [![][coherent-version-badge]][coherent-version] |
@@ -77,42 +80,44 @@ Reference notes:
> **1**: *Our Debian packages are put together slightly differently than the other OS specific installers. Instead of combining everything, we have separate component packages that depend on each other. If you're installing these directly from the .deb files (via dpkg or similar), then you'll need to install the [corresponding Host, Host FX Resolver, and Shared Framework packages](https://github.com/dotnet/core-setup#daily-builds) before installing the Sdk package.*
>
**2**: *A 'coherent' build is defined as a build where the Runtime version matches between the CLI and Asp.NET.*
-[version]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/2.1.3xx/latest.version
-[coherent-version]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/2.1.3xx/latest.coherent.version
+[version]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/master/latest.version
+[coherent-version]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/master/latest.coherent.version
[comment]: # (The latest versions are always the same across all platforms. Just need one to show, so picking win-x64's svg.)
+[version-badge]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/master/win_x64_Release_version_badge.svg
+[coherent-version-badge]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/master/win_x64_Release_coherent_badge.svg
-[version-badge]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/2.1.3xx/win_x64_Release_version_badge.svg
-[coherent-version-badge]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/2.1.3xx/win_x64_Release_coherent_badge.svg
+[win-x64-installer]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/master/dotnet-sdk-latest-win-x64.exe
+[win-x64-installer-checksum]: https://dotnetclichecksums.blob.core.windows.net/dotnet/Sdk/master/dotnet-sdk-latest-win-x64.exe.sha
+[win-x64-zip]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/master/dotnet-sdk-latest-win-x64.zip
+[win-x64-zip-checksum]: https://dotnetclichecksums.blob.core.windows.net/dotnet/Sdk/master/dotnet-sdk-latest-win-x64.zip.sha
-[win-x64-installer]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/2.1.3xx/dotnet-sdk-latest-win-x64.exe
-[win-x64-installer-checksum]: https://dotnetclichecksums.blob.core.windows.net/dotnet/Sdk/release/2.1.3xx/dotnet-sdk-latest-win-x64.exe.sha
-[win-x64-zip]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/2.1.3xx/dotnet-sdk-latest-win-x64.zip
-[win-x64-zip-checksum]: https://dotnetclichecksums.blob.core.windows.net/dotnet/Sdk/release/2.1.3xx/dotnet-sdk-latest-win-x64.zip.sha
+[win-x86-installer]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/master/dotnet-sdk-latest-win-x86.exe
+[win-x86-installer-checksum]: https://dotnetclichecksums.blob.core.windows.net/dotnet/Sdk/master/dotnet-sdk-latest-win-x86.exe.sha
+[win-x86-zip]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/master/dotnet-sdk-latest-win-x86.zip
+[win-x86-zip-checksum]: https://dotnetclichecksums.blob.core.windows.net/dotnet/Sdk/master/dotnet-sdk-latest-win-x86.zip.sha
-[win-x86-installer]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/2.1.3xx/dotnet-sdk-latest-win-x86.exe
-[win-x86-installer-checksum]: https://dotnetclichecksums.blob.core.windows.net/dotnet/Sdk/release/2.1.3xx/dotnet-sdk-latest-win-x86.exe.sha
-[win-x86-zip]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/2.1.3xx/dotnet-sdk-latest-win-x86.zip
-[win-x86-zip-checksum]: https://dotnetclichecksums.blob.core.windows.net/dotnet/Sdk/release/2.1.3xx/dotnet-sdk-latest-win-x86.zip.sha
+[osx-installer]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/master/dotnet-sdk-latest-osx-x64.pkg
+[osx-installer-checksum]: https://dotnetclichecksums.blob.core.windows.net/dotnet/Sdk/master/dotnet-sdk-latest-osx-x64.pkg.sha
+[osx-targz]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/master/dotnet-sdk-latest-osx-x64.tar.gz
+[osx-targz-checksum]: https://dotnetclichecksums.blob.core.windows.net/dotnet/Sdk/master/dotnet-sdk-latest-osx-x64.tar.gz.sha
-[osx-installer]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/2.1.3xx/dotnet-sdk-latest-osx-x64.pkg
-[osx-installer-checksum]: https://dotnetclichecksums.blob.core.windows.net/dotnet/Sdk/release/2.1.3xx/dotnet-sdk-latest-osx-x64.pkg.sha
-[osx-targz]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/2.1.3xx/dotnet-sdk-latest-osx-x64.tar.gz
-[osx-targz-checksum]: https://dotnetclichecksums.blob.core.windows.net/dotnet/Sdk/release/2.1.3xx/dotnet-sdk-latest-osx-x64.tar.gz.sha
+[linux-targz]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/master/dotnet-sdk-latest-linux-x64.tar.gz
+[linux-targz-checksum]: https://dotnetclichecksums.blob.core.windows.net/dotnet/Sdk/master/dotnet-sdk-latest-linux-x64.tar.gz.sha
-[linux-targz]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/2.1.3xx/dotnet-sdk-latest-linux-x64.tar.gz
-[linux-targz-checksum]: https://dotnetclichecksums.blob.core.windows.net/dotnet/Sdk/release/2.1.3xx/dotnet-sdk-latest-linux-x64.tar.gz.sha
+[linux-arm-targz]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/master/dotnet-sdk-latest-linux-arm.tar.gz
+[linux-arm-targz-checksum]: https://dotnetclichecksums.blob.core.windows.net/dotnet/Sdk/master/dotnet-sdk-latest-linux-arm.tar.gz.sha
-[linux-DEB-installer]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/2.1.3xx/dotnet-sdk-latest-x64.deb
-[linux-DEB-installer-checksum]: https://dotnetclichecksums.blob.core.windows.net/dotnet/Sdk/release/2.1.3xx/dotnet-sdk-latest-x64.deb.sha
+[linux-DEB-installer]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/master/dotnet-sdk-latest-x64.deb
+[linux-DEB-installer-checksum]: https://dotnetclichecksums.blob.core.windows.net/dotnet/Sdk/master/dotnet-sdk-latest-x64.deb.sha
-[rhel-7-installer]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/2.1.3xx/dotnet-sdk-latest-rhel-x64.rpm
-[rhel-7-installer-checksum]: https://dotnetclichecksums.blob.core.windows.net/dotnet/Sdk/release/2.1.3xx/dotnet-sdk-latest-rhel-x64.rpm.sha
+[linux-RPM-installer]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/master/dotnet-sdk-latest-x64.rpm
+[linux-RPM-installer-checksum]: https://dotnetclichecksums.blob.core.windows.net/dotnet/Sdk/master/dotnet-sdk-latest-x64.rpm.sha
-[rhel-6-targz]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/2.1.3xx/dotnet-sdk-latest-rhel.6-x64.tar.gz
-[rhel-6-targz-checksum]: https://dotnetclichecksums.blob.core.windows.net/dotnet/Sdk/release/2.1.3xx/dotnet-sdk-latest-rhel.6-x64.tar.gz.sha
+[rhel-6-targz]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/master/dotnet-sdk-latest-rhel.6-x64.tar.gz
+[rhel-6-targz-checksum]: https://dotnetclichecksums.blob.core.windows.net/dotnet/Sdk/master/dotnet-sdk-latest-rhel.6-x64.tar.gz.sha
-[alpine-3.6-targz]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/2.1.3xx/dotnet-sdk-latest-alpine.3.6-x64.tar.gz
-[alpine-3.6-targz-checksum]: https://dotnetclichecksums.blob.core.windows.net/dotnet/Sdk/release/2.1.3xx/dotnet-sdk-latest-alpine.3.6-x64.tar.gz.sha
+[alpine-3.6-targz]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/master/dotnet-sdk-latest-alpine.3.6-x64.tar.gz
+[alpine-3.6-targz-checksum]: https://dotnetclichecksums.blob.core.windows.net/dotnet/Sdk/master/dotnet-sdk-latest-alpine.3.6-x64.tar.gz.sha
# Debian daily feed
diff --git a/TestAssets/TestProjects/docker-compose/docker-compose.dcproj b/TestAssets/TestProjects/docker-compose/docker-compose.dcproj
new file mode 100644
index 000000000..17ed6f924
--- /dev/null
+++ b/TestAssets/TestProjects/docker-compose/docker-compose.dcproj
@@ -0,0 +1,13 @@
+
+
+
+ 2.0
+ Linux
+ LaunchBrowser
+ http://localhost:{ServicePort}
+ testwebapplication
+
+
+
+
+
\ No newline at end of file
diff --git a/TestAssets/TestProjects/docker-compose/docker-compose.yml b/TestAssets/TestProjects/docker-compose/docker-compose.yml
new file mode 100644
index 000000000..9903b7748
--- /dev/null
+++ b/TestAssets/TestProjects/docker-compose/docker-compose.yml
@@ -0,0 +1,8 @@
+version: '3.0'
+
+services:
+ testwebapplication:
+ image: testwebapplication
+ build:
+ context: .
+ dockerfile: testwebapplication/Dockerfile
diff --git a/build/BackwardsCompatibilityRuntimes.props b/build/BackwardsCompatibilityRuntimes.props
index 789b0a2cd..6f612ac1f 100644
--- a/build/BackwardsCompatibilityRuntimes.props
+++ b/build/BackwardsCompatibilityRuntimes.props
@@ -25,7 +25,7 @@
<_DownloadAndExtractItem Include="BackwardsCompatibility110CombinedSharedHostAndFrameworkArchive"
- Condition="!Exists('$(BackwardsCompatibility110CombinedSharedHostAndFrameworkArchive)')">
+ Condition="!Exists('$(BackwardsCompatibility110CombinedSharedHostAndFrameworkArchive)') And !$(Architecture.StartsWith('arm'))">
$(BackwardsCompatibility110SharedFrameworkArchiveBlobRootUrl)/$(BackwardsCompatibility110CombinedFrameworkHostCompressedFileName)$(CoreSetupBlobAccessTokenParam)$(BackwardsCompatibility110CombinedSharedHostAndFrameworkArchive)$(BackwardsCompatibleSharedFrameworksPublishDirectory)
@@ -34,21 +34,21 @@
<_DownloadAndExtractItem Include="BackwardsCompatibility110DownloadedSharedFrameworkInstallerFile"
- Condition="!Exists('$(BackwardsCompatibility110DownloadedSharedFrameworkInstallerFile)') And '$(OSName)' != 'linux'">
+ Condition="!Exists('$(BackwardsCompatibility110DownloadedSharedFrameworkInstallerFile)') And '$(OSName)' != 'linux' And !$(Architecture.StartsWith('arm'))">
$(BackwardsCompatibility110CoreSetupInstallerBlobRootUrl)/$(BackwardsCompatibility110SharedFrameworkVersion)/$(BackwardsCompatibility110DownloadedSharedFrameworkInstallerFileName)$(CoreSetupBlobAccessTokenParam)$(BackwardsCompatibility110DownloadedSharedFrameworkInstallerFile)
<_DownloadAndExtractItem Include="BackwardsCompatibility110DownloadedSharedHostInstallerFile"
- Condition="!Exists('$(BackwardsCompatibility110DownloadedSharedHostInstallerFile)') And '$(OSName)' != 'linux'">
+ Condition="!Exists('$(BackwardsCompatibility110DownloadedSharedHostInstallerFile)') And '$(OSName)' != 'linux' And !$(Architecture.StartsWith('arm'))">
$(BackwardsCompatibility110CoreSetupInstallerBlobRootUrl)/$(BackwardsCompatibility110SharedHostVersion)/$(BackwardsCompatibility110DownloadedSharedHostInstallerFileName)$(CoreSetupBlobAccessTokenParam)$(BackwardsCompatibility110DownloadedSharedHostInstallerFile)
<_DownloadAndExtractItem Include="BackwardsCompatibility110DownloadedHostFxrInstallerFile"
- Condition="!Exists('$(BackwardsCompatibility110DownloadedHostFxrInstallerFile)') And '$(OSName)' != 'linux'">
+ Condition="!Exists('$(BackwardsCompatibility110DownloadedHostFxrInstallerFile)') And '$(OSName)' != 'linux' And !$(Architecture.StartsWith('arm'))">
$(BackwardsCompatibility110CoreSetupInstallerBlobRootUrl)/$(BackwardsCompatibility110HostFxrVersion)/$(BackwardsCompatibility110DownloadedHostFxrInstallerFileName)$(CoreSetupBlobAccessTokenParam)$(BackwardsCompatibility110DownloadedHostFxrInstallerFile)
diff --git a/build/BranchInfo.props b/build/BranchInfo.props
index 0879a9028..f62c8fd00 100644
--- a/build/BranchInfo.props
+++ b/build/BranchInfo.props
@@ -1,6 +1,6 @@
- release/2.1
- release/2.1.3xx
+ master
+ master
diff --git a/build/Branding.props b/build/Branding.props
index b34946abf..282dae5b7 100644
--- a/build/Branding.props
+++ b/build/Branding.props
@@ -24,7 +24,7 @@
'$(HostRid)' == 'opensuse.42.1-x64' ">$(HostRid)
$(HostOSName)-$(Architecture)$(HostMonikerRid)
- $(Architecture)
+ $(Architecture)dotnet-sdk-internaldotnet-sdk
diff --git a/build/BuildDefaults.props b/build/BuildDefaults.props
index 6f3109c4f..1c4460790 100644
--- a/build/BuildDefaults.props
+++ b/build/BuildDefaults.props
@@ -2,6 +2,9 @@
Prepare;Compile;Test;Package;PublishDebug
+
+
+ falsetruetruefalse
diff --git a/build/BuildInfo.targets b/build/BuildInfo.targets
index 6abd51fa9..039dc3bc1 100644
--- a/build/BuildInfo.targets
+++ b/build/BuildInfo.targets
@@ -10,16 +10,14 @@
True
- $(HostRid)
- x64$(HostOSName)$(HostOSPlatform)
-
- linux-x64
- x64linuxlinux
+ x64
+ $(OSName)-$(Architecture)
+
<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
diff --git a/build/BundledDotnetTools.proj b/build/BundledDotnetTools.proj
new file mode 100644
index 000000000..3c07a51f0
--- /dev/null
+++ b/build/BundledDotnetTools.proj
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+
+
+
+
+
+
+ --runtime any
+ $(DotnetToolsRestoreAdditionalParameters) /p:TargetFramework=$(CliTargetFramework)
+ $(DotnetToolsRestoreAdditionalParameters) /p:TemplateFillInPackageName=$(TemplateFillInPackageName)
+ $(DotnetToolsRestoreAdditionalParameters) /p:TemplateFillInPackageVersion=$(TemplateFillInPackageVersion)
+ $(DotnetToolsRestoreAdditionalParameters) /p:RestorePackagesPath=$(DotnetToolsLayoutDirectory)
+ $(DotnetToolsRestoreAdditionalParameters) /p:RestoreProjectStyle=$(DotnetToolsRestoreProjectStyle)
+
+
+
+
+
diff --git a/build/BundledDotnetTools.props b/build/BundledDotnetTools.props
new file mode 100644
index 000000000..e64552ab0
--- /dev/null
+++ b/build/BundledDotnetTools.props
@@ -0,0 +1,8 @@
+
+
+
+
+
+
+
+
diff --git a/build/BundledRuntimes.props b/build/BundledRuntimes.props
index aeeaf373d..1bf1db059 100644
--- a/build/BundledRuntimes.props
+++ b/build/BundledRuntimes.props
@@ -12,7 +12,7 @@
$(CoreSetupRid)
- x64
+ x64dotnet-host$(InstallerStartSuffix)-$(SharedHostVersion)-$(SharedFrameworkInstallerFileRid)$(InstallerExtension)$(PackagesDirectory)/$(DownloadedSharedHostInstallerFileName)
@@ -25,11 +25,10 @@
$(CoreSetupRid)
- linux-x64
+ linux-$(Architecture)dotnet-runtime-$(MicrosoftNETCoreAppPackageVersion)-$(SharedFrameworkRid)$(ArchiveExtension)$(SharedFrameworkRid)
- linux-x64linux-x64$(AspNetCoreSharedFxInstallerRid)x64
@@ -56,7 +55,7 @@
<_DownloadAndExtractItem Include="AspNetCoreSharedFxArchiveFile"
- Condition="!Exists('$(AspNetCoreSharedFxArchiveFile)')">
+ Condition="!Exists('$(AspNetCoreSharedFxArchiveFile)') And !$(Architecture.StartsWith('arm'))">
$(AspNetCoreSharedFxRootUrl)$(AspNetCoreVersion)/$(AspNetCoreSharedFxArchiveFileName)$(CoreSetupBlobAccessTokenParam)$(AspNetCoreSharedFxArchiveFile)$(AspNetCoreSharedFxPublishDirectory)
@@ -70,42 +69,42 @@
<_DownloadAndExtractItem Include="DownloadedRuntimeDepsInstallerFile"
- Condition="'$(IsDebianBaseDistro)' == 'true' And '$(SkipBuildingInstallers)' != 'true' And !Exists('$(DownloadedRuntimeDepsInstallerFile)') And '$(InstallerExtension)' != ''">
+ Condition="('$(IsDebianBaseDistro)' == 'true' OR '$(IsRPMBasedDistro)' == 'true') And '$(SkipBuildingInstallers)' != 'true' And !Exists('$(DownloadedRuntimeDepsInstallerFile)') And '$(InstallerExtension)' != '' And !$(Architecture.StartsWith('arm'))">
$(CoreSetupRootUrl)$(MicrosoftNETCoreAppPackageVersion)/$(DownloadedRuntimeDepsInstallerFileName)$(CoreSetupBlobAccessTokenParam)$(DownloadedRuntimeDepsInstallerFile)
<_DownloadAndExtractItem Include="DownloadedSharedFrameworkInstallerFile"
- Condition="'$(SkipBuildingInstallers)' != 'true' And !Exists('$(DownloadedSharedFrameworkInstallerFile)') And '$(InstallerExtension)' != ''">
+ Condition="'$(SkipBuildingInstallers)' != 'true' And !Exists('$(DownloadedSharedFrameworkInstallerFile)') And '$(InstallerExtension)' != '' And !$(Architecture.StartsWith('arm'))">
$(CoreSetupRootUrl)$(MicrosoftNETCoreAppPackageVersion)/$(DownloadedSharedFrameworkInstallerFileName)$(CoreSetupBlobAccessTokenParam)$(DownloadedSharedFrameworkInstallerFile)
<_DownloadAndExtractItem Include="DownloadedSharedHostInstallerFile"
- Condition="'$(SkipBuildingInstallers)' != 'true' And !Exists('$(DownloadedSharedHostInstallerFile)') And '$(InstallerExtension)' != ''">
+ Condition="'$(SkipBuildingInstallers)' != 'true' And !Exists('$(DownloadedSharedHostInstallerFile)') And '$(InstallerExtension)' != '' And !$(Architecture.StartsWith('arm'))">
$(CoreSetupRootUrl)$(SharedHostVersion)/$(DownloadedSharedHostInstallerFileName)$(CoreSetupBlobAccessTokenParam)$(DownloadedSharedHostInstallerFile)
<_DownloadAndExtractItem Include="DownloadedHostFxrInstallerFile"
- Condition="'$(SkipBuildingInstallers)' != 'true' And !Exists('$(DownloadedHostFxrInstallerFile)') And '$(InstallerExtension)' != ''">
+ Condition="'$(SkipBuildingInstallers)' != 'true' And !Exists('$(DownloadedHostFxrInstallerFile)') And '$(InstallerExtension)' != '' And !$(Architecture.StartsWith('arm'))">
$(CoreSetupRootUrl)$(HostFxrVersion)/$(DownloadedHostFxrInstallerFileName)$(CoreSetupBlobAccessTokenParam)$(DownloadedHostFxrInstallerFile)
<_DownloadAndExtractItem Include="DownloadedAspNetCoreSharedFxInstallerFile"
- Condition="'$(SkipBuildingInstallers)' != 'true' AND '$(DownloadedAspNetCoreSharedFxInstallerFile)' != '' AND !Exists($(DownloadedAspNetCoreSharedFxInstallerFile)) And '$(InstallerExtension)' != ''">
+ Condition="'$(SkipBuildingInstallers)' != 'true' AND '$(DownloadedAspNetCoreSharedFxInstallerFile)' != '' AND !Exists($(DownloadedAspNetCoreSharedFxInstallerFile)) And '$(InstallerExtension)' != '' And !$(Architecture.StartsWith('arm'))">
$(AspNetCoreSharedFxRootUrl)$(AspNetCoreVersion)/$(DownloadedAspNetCoreSharedFxInstallerFileName)$(CoreSetupBlobAccessTokenParam)$(DownloadedAspNetCoreSharedFxInstallerFile)
<_DownloadAndExtractItem Include="AspNetCoreSharedFxBaseRuntimeVersionFile"
- Condition="!Exists('$(AspNetCoreSharedFxBaseRuntimeVersionFile)')">
+ Condition="!Exists('$(AspNetCoreSharedFxBaseRuntimeVersionFile)') And !$(Architecture.StartsWith('arm'))">
$(AspNetCoreSharedFxRootUrl)$(AspNetCoreVersion)/$(AspNetCoreSharedFxBaseRuntimeVersionFileName)$(CoreSetupBlobAccessTokenParam)$(AspNetCoreSharedFxBaseRuntimeVersionFile)
diff --git a/build/BundledSdks.props b/build/BundledSdks.props
index d665ef7f3..b23f247e3 100644
--- a/build/BundledSdks.props
+++ b/build/BundledSdks.props
@@ -2,9 +2,11 @@
+
+
diff --git a/build/BundledTemplates.proj b/build/BundledTemplates.proj
index dfc66e111..4d215f874 100644
--- a/build/BundledTemplates.proj
+++ b/build/BundledTemplates.proj
@@ -11,26 +11,26 @@
-
-
+
+ Condition="!Exists('$(TemplateNuPkgPath)/$(TemplateFillInPackageName.ToLower()).nuspec')">
+ AdditionalParameters="/p:TargetFramework=netcoreapp1.0 /p:TemplateFillInPackageName=$(TemplateFillInPackageName) /p:TemplateFillInPackageVersion=$(TemplateFillInPackageVersion)" />
- $(NuGetPackagesDir)/$(TemplatePackageName.ToLower())/$(TemplatePackageVersion.ToLower())
+ $(NuGetPackagesDir)/$(TemplateFillInPackageName.ToLower())/$(TemplateFillInPackageVersion.ToLower())
diff --git a/build/CLI_Baseline.csv b/build/CLI_Baseline.csv
new file mode 100644
index 000000000..6bafd8e04
--- /dev/null
+++ b/build/CLI_Baseline.csv
@@ -0,0 +1,30 @@
+sdk\*\microsoft.testplatform.vstestconsole.translationlayer.xml,unsigned,oss
+sdk\*\sdks\nuget.build.tasks.pack\*\nuget.build.tasks.pack.xml,unsigned,oss
+sdk\*\templates\microsoft_dotnet_web_projecttemplates*nupkgdir\additional-methods.js,unsigned,oss
+sdk\*\templates\microsoft_dotnet_web_projecttemplates*nupkgdir\additional-methods.js,unsigned,oss
+sdk\*\templates\microsoft_dotnet_web_projecttemplates*nupkgdir\additional-methods.min.js,unsigned,oss
+sdk\*\templates\microsoft_dotnet_web_projecttemplates*nupkgdir\bootstrap.js,unsigned,oss
+sdk\*\templates\microsoft_dotnet_web_projecttemplates*nupkgdir\bootstrap.min.js,unsigned,oss
+sdk\*\templates\microsoft_dotnet_web_projecttemplates*nupkgdir\glyphicons-halflings-regular.ttf,unsigned,oss
+sdk\*\templates\microsoft_dotnet_web_projecttemplates*nupkgdir\jquery.js,unsigned,oss
+sdk\*\templates\microsoft_dotnet_web_projecttemplates*nupkgdir\jquery.min.js,unsigned,oss
+sdk\*\templates\microsoft_dotnet_web_projecttemplates*nupkgdir\jquery.validate.js,unsigned,oss
+sdk\*\templates\microsoft_dotnet_web_projecttemplates*nupkgdir\jquery.validate.min.js,unsigned,oss
+sdk\*\templates\microsoft_dotnet_web_projecttemplates*nupkgdir\jquery.validate.unobtrusive.js,unsigned,oss
+sdk\*\templates\microsoft_dotnet_web_projecttemplates*nupkgdir\jquery.validate.unobtrusive.min.js,unsigned,oss
+sdk\*\templates\microsoft_dotnet_web_projecttemplates*nupkgdir\npm.js,unsigned,oss
+sdk\*\templates\microsoft_dotnet_web_projecttemplates*nupkgdir\site.js,unsigned,oss
+sdk\*\templates\microsoft_dotnet_web_projecttemplates*nupkgdir\site.min.js,unsigned,oss
+sdk\*\templates\microsoft_dotnet_web_spa_projecttemplates*nupkgdir\app.js,unsigned,oss
+sdk\*\templates\microsoft_dotnet_web_spa_projecttemplates*nupkgdir\app.test.js,unsigned,oss
+sdk\*\templates\microsoft_dotnet_web_spa_projecttemplates*nupkgdir\configurestore.js,unsigned,oss
+sdk\*\templates\microsoft_dotnet_web_spa_projecttemplates*nupkgdir\counter.js,unsigned,oss
+sdk\*\templates\microsoft_dotnet_web_spa_projecttemplates*nupkgdir\fetchdata.js,unsigned,oss
+sdk\*\templates\microsoft_dotnet_web_spa_projecttemplates*nupkgdir\home.js,unsigned,oss
+sdk\*\templates\microsoft_dotnet_web_spa_projecttemplates*nupkgdir\index.js,unsigned,oss
+sdk\*\templates\microsoft_dotnet_web_spa_projecttemplates*nupkgdir\karma.conf.js,unsigned,oss
+sdk\*\templates\microsoft_dotnet_web_spa_projecttemplates*nupkgdir\layout.js,unsigned,oss
+sdk\*\templates\microsoft_dotnet_web_spa_projecttemplates*nupkgdir\navmenu.js,unsigned,oss
+sdk\*\templates\microsoft_dotnet_web_spa_projecttemplates*nupkgdir\protractor.conf.js,unsigned,oss
+sdk\*\templates\microsoft_dotnet_web_spa_projecttemplates*nupkgdir\registerserviceworker.js,unsigned,oss
+sdk\*\templates\microsoft_dotnet_web_spa_projecttemplates*nupkgdir\weatherforecasts.js,unsigned,oss
\ No newline at end of file
diff --git a/build/DependencyVersions.props b/build/DependencyVersions.props
index 52379a740..f4fd69fc0 100644
--- a/build/DependencyVersions.props
+++ b/build/DependencyVersions.props
@@ -1,23 +1,23 @@
- 2.1.0-preview1-28275
- 2.1.0-preview1-26116-04
+ 2.1.0-preview2-30338
+ 2.1.0-preview2-26313-01$(MicrosoftNETCoreAppPackageVersion)
- 15.6.82
+ 15.7.0-preview-000066$(MicrosoftBuildPackageVersion)$(MicrosoftBuildPackageVersion)$(MicrosoftBuildPackageVersion)$(MicrosoftBuildPackageVersion)10.1.4-rtm-180213-0
- 2.7.0-beta3-62615-05
- $(MicrosoftCodeAnalysisCSharpPackageVersion)
+ 2.8.0-beta2-62713-01$(MicrosoftCodeAnalysisCSharpPackageVersion)$(MicrosoftCodeAnalysisCSharpPackageVersion)$(MicrosoftCodeAnalysisCSharpPackageVersion)
- 2.1.300-preview1-62608-07
+ 2.1.300-preview2-62716-01$(MicrosoftNETSdkPackageVersion)
- 2.1.0-release21-20180126-1326543
+ $(MicrosoftAspNetCoreAppPackageVersion)
+ 2.1.300-preview2-20180306-1448279$(MicrosoftNETSdkWebPackageVersion)$(MicrosoftNETSdkWebPackageVersion)1.0.1-beta3-20180104-1263555
@@ -28,12 +28,12 @@
$(MicrosoftTemplateEngineCliPackageVersion)$(MicrosoftTemplateEngineCliPackageVersion)$(MicrosoftTemplateEngineCliPackageVersion)
- 2.1.0-preview1-26116-04
- 2.1.0-preview1-26116-04
+ 2.1.0-preview2-26313-01
+ 2.1.0-preview2-26313-010.1.1-alpha-1741.2.1-alpha-002133$(MicrosoftDotNetProjectJsonMigrationPackageVersion)
- 0.2.0-beta-000059
+ 0.2.0-beta-62628-011.6.0-beta2-253044.7.0-preview1-4927$(NuGetBuildTasksPackageVersion)
diff --git a/build/LinuxDistrosNativeInstaller.props b/build/LinuxDistrosNativeInstaller.props
index 3827e569e..d153e267a 100644
--- a/build/LinuxDistrosNativeInstaller.props
+++ b/build/LinuxDistrosNativeInstaller.props
@@ -8,7 +8,7 @@
rhelrpm
- rhel-x64
+ x64
diff --git a/build/MSBuildExtensions.targets b/build/MSBuildExtensions.targets
index f1afbe3cb..c6ce9ae6b 100644
--- a/build/MSBuildExtensions.targets
+++ b/build/MSBuildExtensions.targets
@@ -97,23 +97,27 @@
of our build against Microsoft.NETCore.App to find the correct NETStandard.Library version
-->
- <_NETStandardLibraryVersions Include="@(PackageDefinitions->'%(Version)')"
+ <_NETStandardLibraryPackageVersions Include="@(PackageDefinitions->'%(Version)')"
Condition="%(PackageDefinitions.Name) == 'NetStandard.Library'" />
- <_NETCorePlatformsImplicitPackageVersion Include="@(PackageDefinitions->'%(Version)')"
+ <_NETCorePlatformsPackageVersions Include="@(PackageDefinitions->'%(Version)')"
Condition="%(PackageDefinitions.Name) == 'Microsoft.NETCore.Platforms'" />
-
+
<_NETCoreAppPackageVersion>$(MicrosoftNETCoreAppPackageVersion)
- <_NETStandardPackageVersion>@(_NETStandardLibraryVersions->Distinct())
- <_NETCorePlatformsImplicitPackageVersion>@(_NETCorePlatformsImplicitPackageVersion->Distinct())
+ <_NETStandardLibraryPackageVersion>@(_NETStandardLibraryPackageVersions->Distinct())
+ <_NETCorePlatformsPackageVersion>@(_NETCorePlatformsPackageVersions->Distinct())
<_NETCoreAppTargetFrameworkVersion>$(_NETCoreAppPackageVersion.Split('.')[0]).$(_NETCoreAppPackageVersion.Split('.')[1])
- <_NETStandardTargetFrameworkVersion>$(_NETStandardPackageVersion.Split('.')[0]).$(_NETStandardPackageVersion.Split('.')[1])
+ <_NETStandardTargetFrameworkVersion>$(_NETStandardLibraryPackageVersion.Split('.')[0]).$(_NETStandardLibraryPackageVersion.Split('.')[1])
+
+ <_NETCoreSdkIsPreview Condition=" '$(DropSuffix)' == '' ">true
$(_NETCoreAppTargetFrameworkVersion)
$(_NETCoreAppPackageVersion)$(_NETStandardTargetFrameworkVersion)
- $(_NETStandardPackageVersion)
- $(_NETCorePlatformsImplicitPackageVersion)
+ $(_NETStandardLibraryPackageVersion)
+ $(_NETCorePlatformsPackageVersion)
+ $(SdkVersion)
+ <_NETCoreSdkIsPreview>$(_NETCoreSdkIsPreview)
]]>
diff --git a/build/NugetConfigFile.targets b/build/NugetConfigFile.targets
index ae70bac8f..01752b66d 100644
--- a/build/NugetConfigFile.targets
+++ b/build/NugetConfigFile.targets
@@ -20,7 +20,7 @@
-
+
@@ -29,6 +29,8 @@
+
+
]]>
diff --git a/build/Package.targets b/build/Package.targets
index c9c391839..77ea2aa33 100644
--- a/build/Package.targets
+++ b/build/Package.targets
@@ -11,8 +11,13 @@
+ Condition=" '$(SkipBuildingInstallers)' != 'true' And !$(Architecture.StartsWith('arm')) "
+ DependsOnTargets="Prepare;
+ Layout;
+ GeneratePkgs;
+ GenerateDebs;
+ GenerateMsis;
+ GenerateRpms" />
+ GenerateInstallers" />
+ DependsOnTargets="SandBoxPrepare;
+ Layout;
+ GenerateDebs;
+ GenerateRpms;
+ CopySandBoxPackageOut" />
diff --git a/build/Publish.targets b/build/Publish.targets
index 053aaebfb..70819a6b1 100644
--- a/build/Publish.targets
+++ b/build/Publish.targets
@@ -71,7 +71,7 @@
+ Condition=" '$(Coherent)' == 'true' And !$(Architecture.StartsWith('arm')) " />
diff --git a/build/Test.targets b/build/Test.targets
index 388a2e1fe..52b74f97a 100644
--- a/build/Test.targets
+++ b/build/Test.targets
@@ -13,7 +13,7 @@
diff --git a/build/Version.props b/build/Version.props
index 7c3c70205..99f4241a6 100644
--- a/build/Version.props
+++ b/build/Version.props
@@ -3,7 +3,7 @@
21300
- preview1
+ preview2$(VersionMajor).$(VersionMinor).$(VersionPatch)-$(ReleaseSuffix)$(VersionMajor).$(VersionMinor).$(VersionPatch).$(CommitCount)
diff --git a/build/package/Installer.RPM.targets b/build/package/Installer.RPM.targets
index a3a9c7992..115d6070f 100644
--- a/build/package/Installer.RPM.targets
+++ b/build/package/Installer.RPM.targets
@@ -145,6 +145,8 @@
+ $(MicrosoftNETCoreAppPackageVersion)
+ dotnet-runtime-deps-$(RuntimeDepsPackageVersion)$(SdkVersion)$(OutputDirectory)/sdk$(InstallerOutputDirectory)/$(DistroSpecificArtifactNameWithVersionCombinedHostHostFxrFrameworkSdk)$(InstallerExtension)
@@ -216,6 +218,7 @@
Outputs="$(RpmTestResultsXmlFile)" >
+
@@ -239,5 +242,6 @@
+
diff --git a/build/publish/Badge.targets b/build/publish/Badge.targets
index 1e110eb65..ec3a0905d 100644
--- a/build/publish/Badge.targets
+++ b/build/publish/Badge.targets
@@ -17,7 +17,7 @@
+ Condition=" '$(Coherent)' == 'true' And !$(Architecture.StartsWith('arm')) ">
$(OSName)_$(Architecture)
rhel.6_x64alpine.3.6_x64
- linux_x64
+ linux_$(Architecture)all_linux_distros_native_installer$(BaseOutputDirectory)/$(VersionBadgeMoniker)_$(Configuration)_version_badge.svg
diff --git a/build/publish/RuntimeCoherence.targets b/build/publish/RuntimeCoherence.targets
index 474c20656..4fb8f4d4e 100644
--- a/build/publish/RuntimeCoherence.targets
+++ b/build/publish/RuntimeCoherence.targets
@@ -1,6 +1,7 @@
diff --git a/build/sdks/sdks.csproj b/build/sdks/sdks.csproj
index 496599e4f..2f9a7bb65 100755
--- a/build/sdks/sdks.csproj
+++ b/build/sdks/sdks.csproj
@@ -10,6 +10,7 @@
+
diff --git a/build/templates/templates.csproj b/build/templates/templates.csproj
index 099a67e3f..2b8443fc6 100644
--- a/build/templates/templates.csproj
+++ b/build/templates/templates.csproj
@@ -3,12 +3,11 @@
Library
- netcoreapp1.0false
-
+
diff --git a/build/test/TestPackageProjects.targets b/build/test/TestPackageProjects.targets
index fea46690c..bb280358a 100644
--- a/build/test/TestPackageProjects.targets
+++ b/build/test/TestPackageProjects.targets
@@ -39,7 +39,7 @@
$(CliVersionPrefix)$(VersionSuffix)False
- /p:TargetFramework=netstandard1.5
+ /p:TargetFramework=netstandard2.0Microsoft.DotNet.InternalAbstractions
diff --git a/build/test/TestProjects.targets b/build/test/TestProjects.targets
index 8a5d21a55..96b08c34d 100644
--- a/build/test/TestProjects.targets
+++ b/build/test/TestProjects.targets
@@ -15,6 +15,7 @@
diff --git a/build_projects/dotnet-cli-build/CheckIfAllBuildsHavePublished.cs b/build_projects/dotnet-cli-build/CheckIfAllBuildsHavePublished.cs
index 8b0df65ed..f6045cbd1 100644
--- a/build_projects/dotnet-cli-build/CheckIfAllBuildsHavePublished.cs
+++ b/build_projects/dotnet-cli-build/CheckIfAllBuildsHavePublished.cs
@@ -55,7 +55,8 @@ namespace Microsoft.DotNet.Cli.Build
{ "linux_x64", false },
{ "rhel.6_x64", false },
{ "alpine.3.6_x64", false },
- { "all_linux_distros_native_installer", false}
+ { "all_linux_distros_native_installer", false},
+ { "linux_arm", false}
};
if (!badges.ContainsKey(VersionBadgeMoniker))
diff --git a/netci.groovy b/netci.groovy
index d8cec3967..89de34fee 100644
--- a/netci.groovy
+++ b/netci.groovy
@@ -9,7 +9,7 @@ def project = GithubProject
def branch = GithubBranchName
def isPR = true
-def platformList = ['Linux:x64:Release', 'Debian8.2:x64:Debug', 'Ubuntu:x64:Release', 'Ubuntu16.04:x64:Debug', 'OSX10.12:x64:Release', 'Windows_NT:x64:Release', 'Windows_NT:x86:Debug', 'Windows_NT_ES:x64:Debug', 'RHEL7.2:x64:Release', 'CentOS7.1:x64:Debug', 'RHEL6:x64:Debug', 'Alpine3.6:x64:Debug']
+def platformList = ['Linux:x64:Release', 'Debian8.2:x64:Debug', 'Ubuntu:x64:Release', 'Ubuntu16.04:x64:Debug', 'OSX10.12:x64:Release', 'Windows_NT:x64:Release', 'Windows_NT:x86:Debug', 'Windows_NT_ES:x64:Debug', 'RHEL7.2:x64:Release', 'CentOS7.1:x64:Debug', 'RHEL6:x64:Debug', 'Alpine3.6:x64:Debug', 'Linux:arm:Debug']
def static getBuildJobName(def configuration, def os, def architecture) {
return configuration.toLowerCase() + '_' + os.toLowerCase() + '_' + architecture.toLowerCase()
@@ -44,7 +44,12 @@ set DOTNET_CLI_UI_LANGUAGE=es
}
else if (os == 'Linux') {
osUsedForMachineAffinity = 'Ubuntu16.04';
- buildCommand = "./build.sh --linux-portable --skip-prereqs --configuration ${configuration} --targets Default"
+ if (architecture == 'arm') {
+ buildCommand = "./build.sh --linux-portable --skip-prereqs --architecture ${architecture} --configuration ${configuration} --targets Default /p:CLIBUILD_SKIP_TESTS=true"
+ }
+ else {
+ buildCommand = "./build.sh --linux-portable --skip-prereqs --configuration ${configuration} --targets Default"
+ }
}
else if (os == 'RHEL6') {
osUsedForMachineAffinity = 'Ubuntu16.04';
@@ -75,7 +80,10 @@ set DOTNET_CLI_UI_LANGUAGE=es
Utilities.setMachineAffinity(newJob, osUsedForMachineAffinity, 'latest-or-auto')
Utilities.standardJobSetup(newJob, project, isPR, "*/${branch}")
- Utilities.addMSTestResults(newJob, '**/*.trx')
+ // ARM CI runs are build only.
+ if (architecture != 'arm') {
+ Utilities.addMSTestResults(newJob, '**/*.trx')
+ }
Utilities.addGithubPRTriggerForBranch(newJob, branch, "${os} ${architecture} ${configuration} Build")
}
diff --git a/run-build.ps1 b/run-build.ps1
index c92b91b6d..5698721dc 100644
--- a/run-build.ps1
+++ b/run-build.ps1
@@ -20,7 +20,7 @@ if($Help)
Write-Output ""
Write-Output "Options:"
Write-Output " -Configuration Build the specified Configuration (Debug or Release, default: Debug)"
- Write-Output " -Architecture Build the specified architecture (x64 or x86 (supported only on Windows), default: x64)"
+ Write-Output " -Architecture Build the specified architecture (x64, x86, or arm , default: x64)"
Write-Output " -NoPackage Skip packaging targets"
Write-Output " -NoBuild Skip building the product"
Write-Output " -Help Display this help message"
@@ -82,8 +82,15 @@ $env:VSTEST_TRACE_BUILD=1
# install a stage0
$dotnetInstallPath = Join-Path $RepoRoot "scripts\obtain\dotnet-install.ps1"
-Write-Output "$dotnetInstallPath -version ""2.2.0-preview1-007799"" -InstallDir $env:DOTNET_INSTALL_DIR -Architecture ""$Architecture"""
-Invoke-Expression "$dotnetInstallPath -version ""2.2.0-preview1-007799"" -InstallDir $env:DOTNET_INSTALL_DIR -Architecture ""$Architecture"""
+$InstallArchitecture = $Architecture
+if($Architecture.StartsWith("arm", [StringComparison]::OrdinalIgnoreCase))
+{
+ $InstallArchitecture = "x64"
+}
+
+Write-Output "$dotnetInstallPath -version ""2.2.0-preview1-007799"" -InstallDir $env:DOTNET_INSTALL_DIR -Architecture ""$InstallArchitecture"""
+Invoke-Expression "$dotnetInstallPath -version ""2.2.0-preview1-007799"" -InstallDir $env:DOTNET_INSTALL_DIR -Architecture ""$InstallArchitecture"""
+
if ($LastExitCode -ne 0)
{
Write-Output "The .NET CLI installation failed with exit code $LastExitCode"
diff --git a/run-build.sh b/run-build.sh
index 7d383f86f..9ebba823b 100755
--- a/run-build.sh
+++ b/run-build.sh
@@ -96,7 +96,7 @@ while [[ $# > 0 ]]; do
;;
--linux-portable)
LINUX_PORTABLE_INSTALL_ARGS="--runtime-id linux-x64"
- CUSTOM_BUILD_ARGS="/p:Rid=\"linux-x64\" /p:OSName=\"linux\" /p:IslinuxPortable=\"true\""
+ CUSTOM_BUILD_ARGS="/p:OSName=\"linux\" /p:IslinuxPortable=\"true\""
;;
--stage0)
STAGE0_SOURCE_DIR=$2
@@ -107,7 +107,7 @@ while [[ $# > 0 ]]; do
echo ""
echo "Options:"
echo " --configuration Build the specified Configuration (Debug or Release, default: Debug)"
- echo " --architecture Build the specified architecture (x64 or x86 (supported only on Windows), default: x64)"
+ echo " --architecture Build the specified architecture (x64 or arm , default: x64)"
echo " --skip-prereqs Skip checks for pre-reqs in dotnet_install"
echo " --nopackage Skip packaging targets"
echo " --nobuild Skip building, showing the command that would be used to build"
@@ -140,6 +140,7 @@ done
[ -z "$DOTNET_INSTALL_DIR" ] && export DOTNET_INSTALL_DIR=$REPOROOT/.dotnet_stage0/$ARCHITECTURE
[ -d "$DOTNET_INSTALL_DIR" ] || mkdir -p $DOTNET_INSTALL_DIR
+# Disable first run since we want to control all package sources
export DOTNET_SKIP_FIRST_TIME_EXPERIENCE=1
# Enable verbose VS Test Console logging
@@ -151,8 +152,14 @@ export VSTEST_TRACE_BUILD=1
export DOTNET_MULTILEVEL_LOOKUP=0
# Install a stage 0
+INSTALL_ARCHITECTURE=$ARCHITECTURE
+archlower="$(echo $ARCHITECTURE | awk '{print tolower($0)}')"
+if [[ $archlower == 'arm'* ]]; then
+ INSTALL_ARCHITECTURE="x64"
+fi
+
if [ "$STAGE0_SOURCE_DIR" == "" ]; then
- (set -x ; "$REPOROOT/scripts/obtain/dotnet-install.sh" --version "2.2.0-preview1-007799" --install-dir "$DOTNET_INSTALL_DIR" --architecture "$ARCHITECTURE" $LINUX_PORTABLE_INSTALL_ARGS)
+ (set -x ; "$REPOROOT/scripts/obtain/dotnet-install.sh" --version "2.2.0-preview1-007799" --install-dir "$DOTNET_INSTALL_DIR" --architecture "$INSTALL_ARCHITECTURE" $LINUX_PORTABLE_INSTALL_ARGS)
else
echo "Copying bootstrap cli from $STAGE0_SOURCE_DIR"
cp -r $STAGE0_SOURCE_DIR/* "$DOTNET_INSTALL_DIR"
diff --git a/src/Microsoft.DotNet.Cli.Sln.Internal/Microsoft.DotNet.Cli.Sln.Internal.csproj b/src/Microsoft.DotNet.Cli.Sln.Internal/Microsoft.DotNet.Cli.Sln.Internal.csproj
index 2120e657e..18a54fe7a 100644
--- a/src/Microsoft.DotNet.Cli.Sln.Internal/Microsoft.DotNet.Cli.Sln.Internal.csproj
+++ b/src/Microsoft.DotNet.Cli.Sln.Internal/Microsoft.DotNet.Cli.Sln.Internal.csproj
@@ -3,7 +3,7 @@
SLN file reader/writer$(CliVersionPrefix)
- netstandard1.6
+ netstandard2.0portableMicrosoft.DotNet.Cli.Sln.Internal../../tools/Key.snk
@@ -22,7 +22,7 @@
-
+
diff --git a/src/Microsoft.DotNet.Cli.Utils/CommandResolution/CommandResolutionStrategy.cs b/src/Microsoft.DotNet.Cli.Utils/CommandResolution/CommandResolutionStrategy.cs
index da52bf31b..d2b81f483 100644
--- a/src/Microsoft.DotNet.Cli.Utils/CommandResolution/CommandResolutionStrategy.cs
+++ b/src/Microsoft.DotNet.Cli.Utils/CommandResolution/CommandResolutionStrategy.cs
@@ -14,6 +14,9 @@ namespace Microsoft.DotNet.Cli.Utils
// command loaded from project tools nuget package
ProjectToolsPackage,
+ // command loaded from bundled DotnetTools nuget package
+ DotnetToolsPackage,
+
// command loaded from the same directory as the executing assembly
BaseDirectory,
diff --git a/src/Microsoft.DotNet.Cli.Utils/CommandResolution/DefaultCommandResolverPolicy.cs b/src/Microsoft.DotNet.Cli.Utils/CommandResolution/DefaultCommandResolverPolicy.cs
index d8a2c464b..711d63112 100644
--- a/src/Microsoft.DotNet.Cli.Utils/CommandResolution/DefaultCommandResolverPolicy.cs
+++ b/src/Microsoft.DotNet.Cli.Utils/CommandResolution/DefaultCommandResolverPolicy.cs
@@ -44,6 +44,7 @@ namespace Microsoft.DotNet.Cli.Utils
var compositeCommandResolver = new CompositeCommandResolver();
compositeCommandResolver.AddCommandResolver(new MuxerCommandResolver());
+ compositeCommandResolver.AddCommandResolver(new DotnetToolsCommandResolver());
compositeCommandResolver.AddCommandResolver(new RootedCommandResolver());
compositeCommandResolver.AddCommandResolver(
new ProjectToolsCommandResolver(packagedCommandSpecFactory, environment));
diff --git a/src/Microsoft.DotNet.Cli.Utils/CommandResolution/DotnetToolsCommandResolver.cs b/src/Microsoft.DotNet.Cli.Utils/CommandResolution/DotnetToolsCommandResolver.cs
new file mode 100644
index 000000000..64ba55118
--- /dev/null
+++ b/src/Microsoft.DotNet.Cli.Utils/CommandResolution/DotnetToolsCommandResolver.cs
@@ -0,0 +1,89 @@
+// Copyright (c) .NET Foundation and contributors. All rights reserved.
+// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+
+using System;
+using System.IO;
+using System.Reflection;
+using System.Collections.Generic;
+using Microsoft.DotNet.PlatformAbstractions;
+
+namespace Microsoft.DotNet.Cli.Utils
+{
+ public class DotnetToolsCommandResolver : ICommandResolver
+ {
+ private string _dotnetToolPath;
+
+ public DotnetToolsCommandResolver(string dotnetToolPath = null)
+ {
+ if (dotnetToolPath == null)
+ {
+ _dotnetToolPath = Path.Combine(ApplicationEnvironment.ApplicationBasePath,
+ "DotnetTools");
+ }
+ else
+ {
+ _dotnetToolPath = dotnetToolPath;
+ }
+ }
+
+ public CommandSpec Resolve(CommandResolverArguments arguments)
+ {
+ if (string.IsNullOrEmpty(arguments.CommandName))
+ {
+ return null;
+ }
+
+ var packageId = new DirectoryInfo(Path.Combine(_dotnetToolPath, arguments.CommandName));
+ if (!packageId.Exists)
+ {
+ return null;
+ }
+
+ var version = packageId.GetDirectories()[0];
+ var dll = version.GetDirectories("tools")[0]
+ .GetDirectories()[0] // TFM
+ .GetDirectories()[0] // RID
+ .GetFiles($"{arguments.CommandName}.dll")[0];
+
+ return CreatePackageCommandSpecUsingMuxer(
+ dll.FullName,
+ arguments.CommandArguments,
+ CommandResolutionStrategy.DotnetToolsPackage);
+ }
+
+ private CommandSpec CreatePackageCommandSpecUsingMuxer(
+ string commandPath,
+ IEnumerable commandArguments,
+ CommandResolutionStrategy commandResolutionStrategy)
+ {
+ var arguments = new List();
+
+ var muxer = new Muxer();
+
+ var host = muxer.MuxerPath;
+ if (host == null)
+ {
+ throw new Exception(LocalizableStrings.UnableToLocateDotnetMultiplexer);
+ }
+
+ arguments.Add(commandPath);
+
+ if (commandArguments != null)
+ {
+ arguments.AddRange(commandArguments);
+ }
+
+ return CreateCommandSpec(host, arguments, commandResolutionStrategy);
+ }
+
+ private CommandSpec CreateCommandSpec(
+ string commandPath,
+ IEnumerable commandArguments,
+ CommandResolutionStrategy commandResolutionStrategy)
+ {
+ var escapedArgs = ArgumentEscaper.EscapeAndConcatenateArgArrayForProcessStart(commandArguments);
+
+ return new CommandSpec(commandPath, escapedArgs, commandResolutionStrategy);
+ }
+ }
+}
diff --git a/src/Microsoft.DotNet.Cli.Utils/Constants.cs b/src/Microsoft.DotNet.Cli.Utils/Constants.cs
index 187a451d2..ad5d5111d 100644
--- a/src/Microsoft.DotNet.Cli.Utils/Constants.cs
+++ b/src/Microsoft.DotNet.Cli.Utils/Constants.cs
@@ -21,5 +21,6 @@ namespace Microsoft.DotNet.Cli.Utils
public static readonly string ProjectArgumentName = "";
public static readonly string SolutionArgumentName = "";
+ public static readonly string ToolPackageArgumentName = "";
}
}
diff --git a/src/Microsoft.DotNet.Cli.Utils/FileNameSuffixes.cs b/src/Microsoft.DotNet.Cli.Utils/FileNameSuffixes.cs
index 5bb3fc795..48c149c74 100644
--- a/src/Microsoft.DotNet.Cli.Utils/FileNameSuffixes.cs
+++ b/src/Microsoft.DotNet.Cli.Utils/FileNameSuffixes.cs
@@ -24,6 +24,8 @@ namespace Microsoft.DotNet.Cli.Utils
return OSX;
case Platform.Linux:
return Linux;
+ case Platform.FreeBSD:
+ return FreeBSD;
default:
throw new InvalidOperationException("Unknown Platform");
}
@@ -62,6 +64,8 @@ namespace Microsoft.DotNet.Cli.Utils
StaticLib = ".a"
};
+ public static PlatformFileNameSuffixes FreeBSD { get; } = Linux;
+
public struct PlatformFileNameSuffixes
{
public string DynamicLib { get; internal set; }
diff --git a/src/Microsoft.DotNet.Cli.Utils/GracefulException.cs b/src/Microsoft.DotNet.Cli.Utils/GracefulException.cs
index 50ab33a0b..835faa373 100644
--- a/src/Microsoft.DotNet.Cli.Utils/GracefulException.cs
+++ b/src/Microsoft.DotNet.Cli.Utils/GracefulException.cs
@@ -2,16 +2,35 @@
// Licensed under the MIT license. See LICENSE file in the project root for full license information.
using System;
+using System.Collections.Generic;
+using System.Linq;
namespace Microsoft.DotNet.Cli.Utils
{
public class GracefulException : Exception
{
+ public bool IsUserError { get; } = true;
+ public string VerboseMessage { get; } = string.Empty;
+
public GracefulException(string message) : base(message)
{
Data.Add(ExceptionExtensions.CLI_User_Displayed_Exception, true);
}
+
+ public GracefulException(IEnumerable messages, IEnumerable verboseMessages = null,
+ bool isUserError = true)
+ : base(string.Join(Environment.NewLine, messages))
+ {
+ IsUserError = isUserError;
+ if (verboseMessages != null)
+ {
+ VerboseMessage = string.Join(Environment.NewLine, VerboseMessage);
+ }
+
+ Data.Add(ExceptionExtensions.CLI_User_Displayed_Exception, true);
+ }
+
public GracefulException(string format, params string[] args) : this(string.Format(format, args))
{
}
diff --git a/src/Microsoft.DotNet.Cli.Utils/LocalizableStrings.resx b/src/Microsoft.DotNet.Cli.Utils/LocalizableStrings.resx
index 0fe90333b..2ebbb5fe9 100644
--- a/src/Microsoft.DotNet.Cli.Utils/LocalizableStrings.resx
+++ b/src/Microsoft.DotNet.Cli.Utils/LocalizableStrings.resx
@@ -241,6 +241,12 @@
.NET Command Line Tools
+
+ .NET Core SDK (reflecting any global.json):
+
+
+ Runtime Environment:
+
WriteLine forwarder set previously
diff --git a/src/Microsoft.DotNet.Cli.Utils/Microsoft.DotNet.Cli.Utils.csproj b/src/Microsoft.DotNet.Cli.Utils/Microsoft.DotNet.Cli.Utils.csproj
index c7c98b98b..0a124d605 100644
--- a/src/Microsoft.DotNet.Cli.Utils/Microsoft.DotNet.Cli.Utils.csproj
+++ b/src/Microsoft.DotNet.Cli.Utils/Microsoft.DotNet.Cli.Utils.csproj
@@ -2,8 +2,8 @@
$(SdkVersion)
- netstandard1.5;net46
- netstandard1.5
+ netstandard2.0;net46
+ netstandard2.0true../../tools/Key.snktrue
@@ -27,11 +27,12 @@
-
+
+
-
+
diff --git a/src/Microsoft.DotNet.Cli.Utils/xlf/LocalizableStrings.cs.xlf b/src/Microsoft.DotNet.Cli.Utils/xlf/LocalizableStrings.cs.xlf
index 1aaef6cd5..d97ad03f5 100644
--- a/src/Microsoft.DotNet.Cli.Utils/xlf/LocalizableStrings.cs.xlf
+++ b/src/Microsoft.DotNet.Cli.Utils/xlf/LocalizableStrings.cs.xlf
@@ -234,6 +234,16 @@
Spustitelný soubor příkazu {0} se nenašel. Projekt se nepodařilo obnovit nebo jeho obnovení nebylo úspěšné. Spusťte příkaz dotnet restore.
+
+ .NET Core SDK (reflecting any global.json):
+ .NET Core SDK (reflecting any global.json):
+
+
+
+ Runtime Environment:
+ Runtime Environment:
+
+