diff --git a/.editorconfig b/.editorconfig
new file mode 100644
index 000000000..21e4302b9
--- /dev/null
+++ b/.editorconfig
@@ -0,0 +1,149 @@
+# editorconfig.org
+
+# top-most EditorConfig file
+root = true
+
+# Default settings:
+# A newline ending every file
+# Use 4 spaces as indentation
+[*]
+insert_final_newline = true
+indent_style = space
+indent_size = 4
+
+[project.json]
+indent_size = 2
+
+# C# files
+[*.cs]
+# New line preferences
+csharp_new_line_before_open_brace = all
+csharp_new_line_before_else = true
+csharp_new_line_before_catch = true
+csharp_new_line_before_finally = true
+csharp_new_line_before_members_in_object_initializers = true
+csharp_new_line_before_members_in_anonymous_types = true
+csharp_new_line_within_query_expression_clauses = true
+
+# Indentation preferences
+csharp_indent_block_contents = true
+csharp_indent_braces = false
+csharp_indent_case_contents = true
+csharp_indent_switch_labels = true
+csharp_indent_labels = flush_left
+
+# avoid this. unless absolutely necessary
+dotnet_style_qualification_for_field = false:suggestion
+dotnet_style_qualification_for_property = false:suggestion
+dotnet_style_qualification_for_method = false:suggestion
+dotnet_style_qualification_for_event = false:suggestion
+
+# only use var when it's obvious what the variable type is
+csharp_style_var_for_built_in_types = false:none
+csharp_style_var_when_type_is_apparent = false:none
+csharp_style_var_elsewhere = false:suggestion
+
+# use language keywords instead of BCL types
+dotnet_style_predefined_type_for_locals_parameters_members = true:suggestion
+dotnet_style_predefined_type_for_member_access = true:suggestion
+
+# name all constant fields using PascalCase
+dotnet_naming_rule.constant_fields_should_be_pascal_case.severity = suggestion
+dotnet_naming_rule.constant_fields_should_be_pascal_case.symbols = constant_fields
+dotnet_naming_rule.constant_fields_should_be_pascal_case.style = pascal_case_style
+
+dotnet_naming_symbols.constant_fields.applicable_kinds = field
+dotnet_naming_symbols.constant_fields.required_modifiers = const
+
+dotnet_naming_style.pascal_case_style.capitalization = pascal_case
+
+# internal and private fields should be _camelCase
+dotnet_naming_rule.camel_case_for_private_internal_fields.severity = suggestion
+dotnet_naming_rule.camel_case_for_private_internal_fields.symbols = private_internal_fields
+dotnet_naming_rule.camel_case_for_private_internal_fields.style = camel_case_underscore_style
+
+dotnet_naming_symbols.private_internal_fields.applicable_kinds = field
+dotnet_naming_symbols.private_internal_fields.applicable_accessibilities = private, internal
+
+dotnet_naming_style.camel_case_underscore_style.required_prefix = _
+dotnet_naming_style.camel_case_underscore_style.capitalization = camel_case
+
+# Code style defaults
+dotnet_sort_system_directives_first = true
+csharp_preserve_single_line_blocks = true
+csharp_preserve_single_line_statements = false
+
+# Expression-level preferences
+dotnet_style_object_initializer = true:suggestion
+dotnet_style_collection_initializer = true:suggestion
+dotnet_style_explicit_tuple_names = true:suggestion
+dotnet_style_coalesce_expression = true:suggestion
+dotnet_style_null_propagation = true:suggestion
+
+# Expression-bodied members
+csharp_style_expression_bodied_methods = false:none
+csharp_style_expression_bodied_constructors = false:none
+csharp_style_expression_bodied_operators = false:none
+csharp_style_expression_bodied_properties = true:none
+csharp_style_expression_bodied_indexers = true:none
+csharp_style_expression_bodied_accessors = true:none
+
+# Pattern matching
+csharp_style_pattern_matching_over_is_with_cast_check = true:suggestion
+csharp_style_pattern_matching_over_as_with_null_check = true:suggestion
+csharp_style_inlined_variable_declaration = true:suggestion
+
+# Null checking preferences
+csharp_style_throw_expression = true:suggestion
+csharp_style_conditional_delegate_call = true:suggestion
+
+# Space preferences
+csharp_space_after_cast = false
+csharp_space_after_colon_in_inheritance_clause = true
+csharp_space_after_comma = true
+csharp_space_after_dot = false
+csharp_space_after_keywords_in_control_flow_statements = true
+csharp_space_after_semicolon_in_for_statement = true
+csharp_space_around_binary_operators = before_and_after
+csharp_space_around_declaration_statements = do_not_ignore
+csharp_space_before_colon_in_inheritance_clause = true
+csharp_space_before_comma = false
+csharp_space_before_dot = false
+csharp_space_before_open_square_brackets = false
+csharp_space_before_semicolon_in_for_statement = false
+csharp_space_between_empty_square_brackets = false
+csharp_space_between_method_call_empty_parameter_list_parentheses = false
+csharp_space_between_method_call_name_and_opening_parenthesis = false
+csharp_space_between_method_call_parameter_list_parentheses = false
+csharp_space_between_method_declaration_empty_parameter_list_parentheses = false
+csharp_space_between_method_declaration_name_and_open_parenthesis = false
+csharp_space_between_method_declaration_parameter_list_parentheses = false
+csharp_space_between_parentheses = false
+csharp_space_between_square_brackets = false
+
+# C++ Files
+[*.{cpp,h,in}]
+curly_bracket_next_line = true
+indent_brace_style = Allman
+
+# Xml project files
+[*.{csproj,vcxproj,vcxproj.filters,proj,nativeproj,locproj}]
+indent_size = 2
+
+# Xml build files
+[*.builds]
+indent_size = 2
+
+# Xml files
+[*.{xml,stylecop,resx,ruleset}]
+indent_size = 2
+
+# Xml config files
+[*.{props,targets,config,nuspec}]
+indent_size = 2
+
+# Shell scripts
+[*.sh]
+end_of_line = lf
+[*.{cmd, bat}]
+end_of_line = crlf
diff --git a/.gitignore b/.gitignore
index 19e5af704..847693d1d 100644
--- a/.gitignore
+++ b/.gitignore
@@ -99,6 +99,7 @@ dlldata.c
# DNX
project.lock.json
artifacts/
+bin/
*_i.c
*_p.c
diff --git a/Directory.Build.props b/Directory.Build.props
new file mode 100644
index 000000000..a75ddc89a
--- /dev/null
+++ b/Directory.Build.props
@@ -0,0 +1,70 @@
+
+
+
+
+
+ $(MSBuildThisFileDirectory)
+
+ $(NUGET_PACKAGES)
+ $(RepoRoot)/.nuget/packages
+
+ build_projects/dotnet-cli-build/bin
+ dotnet-cli-build.dll
+ $(RepoRoot)/$(RelativeCLIBuildBinaries)/$(RelativeCLIBuildDllName)
+ $(RepoRoot)/build_projects/dotnet-cli-build/bin/Microsoft.DotNet.Build.Tasks.Feed.dll
+
+ true
+ true
+
+ netcoreapp2.1
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Documentation/README.md b/Documentation/README.md
index 94edbb417..9d211c0a2 100644
--- a/Documentation/README.md
+++ b/Documentation/README.md
@@ -16,7 +16,7 @@ Documents Index
## Troubleshooting and issues reporting
-- [CLI Known Issues](https://github.com/dotnet/core/blob/master/cli/known-issues.md)
+- [CLI Known Issues](https://github.com/dotnet/core/blob/master/release-notes/2.0/2.0.0-known-issues.md)
- [Filing migration issues](migration-issues.md)
## Specifications
diff --git a/Documentation/general/tab-completion.md b/Documentation/general/tab-completion.md
index bf6fefaa3..4687e897e 100644
--- a/Documentation/general/tab-completion.md
+++ b/Documentation/general/tab-completion.md
@@ -1,6 +1,6 @@
# .NET CLI Tab Completion
-In version 2.0 of the .NET Core CLI, we have added support for providing suggestions when you press `tab`. While it's not yet enabled by default, you can try it out today by installing a [preview build](https://github.com/dotnet/cli#installers-and-binaries) from the master branch or by building from source.
+In version 2.0 of the .NET Core CLI, we have added support for providing suggestions when you press `tab`. While it's not yet enabled by default, you can try it out in PowerShell, bash, or zsh by following the instructions below.
Here are some examples of what it provides:
@@ -26,17 +26,18 @@ If you just installed `dotnet` you may see the first-run output:
```
Welcome to .NET Core!
---------------------
-Learn more about .NET Core @ https://aka.ms/dotnet-docs. Use dotnet --help to see available commands or go to https://aka.ms/dotnet-cli-docs.
+Learn more about .NET Core: https://aka.ms/dotnet-docs
+Use 'dotnet --help' to see available commands or visit: https://aka.ms/dotnet-cli-docs
Telemetry
---------------
-The .NET Core tools collect usage data in order to improve your experience. The data is anonymous and does not include command-line arguments. The data is collected by Microsoft and shared with the community.
-You can opt out of telemetry by setting a DOTNET_CLI_TELEMETRY_OPTOUT environment variable to 1 using your favorite shell.
-You can read more about .NET Core tools telemetry @ https://aka.ms/dotnet-cli-telemetry.
+---------
+The .NET Core tools collect usage data in order to help us improve your experience. The data is anonymous and doesn't include command-line arguments. The data is collected by Microsoft and shared with the community. You can opt-out of telemetry by setting the DOTNET_CLI_TELEMETRY_OPTOUT environment variable to '1' or 'true' using your favorite shell.
+
+Read more about .NET Core CLI Tools telemetry: https://aka.ms/dotnet-cli-telemetry
Configuring...
--------------------
-A command is running to initially populate your local package cache, to improve restore speed and enable offline access. This command will take up to a minute to complete and will only happen once.
+--------------
+A command is running to populate your local package cache to improve restore speed and enable offline access. This command takes up to one minute to complete and only runs once.
Decompressing 100% 4936 ms
Expanding 100% 17195 ms
```
@@ -68,4 +69,4 @@ To enable tab completion in zsh, edit your `.zshrc` file to add the contents of
## How it works
-Each of these scripts provides a hook for completions for its respective shell. The logic that determines which suggestions to provide is in the CLI itself, configured using [our new parser](https://github.com/dotnet/CliCommandLineParser). You can see a code example [here](https://github.com/dotnet/cli/blob/master/src/dotnet/commands/dotnet-add/dotnet-add-package/AddPackageParser.cs#L23).
+Each of these scripts provides a hook for completions for its respective shell. The logic that determines which suggestions to provide is in the CLI itself, configured using [our new parser](https://github.com/dotnet/CliCommandLineParser). You can see a code example [here](https://github.com/dotnet/cli/blob/master/src/dotnet/commands/dotnet-add/dotnet-add-package/AddPackageParser.cs).
diff --git a/Documentation/project-docs/developer-guide.md b/Documentation/project-docs/developer-guide.md
index 0391adefa..7e8e76055 100644
--- a/Documentation/project-docs/developer-guide.md
+++ b/Documentation/project-docs/developer-guide.md
@@ -27,8 +27,7 @@ In order to build .NET Command Line Interface, you need the following installed
## Building/Running
1. Run `build.cmd` or `build.sh` from the root depending on your OS. If you don't want to execute tests, run `build.cmd /t:Compile` or `./build.sh /t:Compile`.
- - To build the CLI in macOS Sierra, you need to set the DOTNET_RUNTIME_ID environment variable by running `export DOTNET_RUNTIME_ID=osx.10.11-x64`.
-2. Use `artifacts/{RID}/stage2/dotnet` to try out the `dotnet` command. You can also add `artifacts/{os}-{arch}/stage2` to the PATH if you want to use the build output when invoking `dotnet` from the current console.
+2. The CLI that is built (we call it stage 2) will be laid out in the `bin\2\{RID}\dotnet` folder. You can run `dotnet.exe` or `dotnet` from that folder to try out the `dotnet` command.
## A simple test
Using the `dotnet` built in the previous step:
@@ -40,8 +39,12 @@ Using the `dotnet` built in the previous step:
## Running tests
-1. To run all tests invoke `build.cmd` or `build.sh` which will build the product and run the tests.
-2. To run a specific test, cd into that test's directory and execute `dotnet test`. If using this approach, make sure to add `artifacts/{RID}/stage2` to your `PATH` and set the `NUGET_PACKAGES` environment variable to point to the repo's `.nuget/packages` directory.
+1. To run all tests, invoke `build.cmd` or `build.sh` which will build the product and run the tests.
+2. To run a specific test project:
+ - Run `scripts\cli-test-env.bat` on Windows, or [source](https://en.wikipedia.org/wiki/Source_(command)) `scripts/cli-test-env.sh` on Linux or OS X. This will add the stage 2 `dotnet` folder to your path and set up other environment variables which are used for running tests.
+ - `cd` into the test's directory
+ - Run `dotnet test`
+ - Refer to the command-line help for `dotnet test` if you want to run a specific test in the test project
## Adding a Command
diff --git a/Documentation/specs/cli-installation-scenarios.md b/Documentation/specs/cli-installation-scenarios.md
index 16182c234..654ae0e66 100644
--- a/Documentation/specs/cli-installation-scenarios.md
+++ b/Documentation/specs/cli-installation-scenarios.md
@@ -17,6 +17,8 @@ Obtaining .NET CLI
* [Acquisition modes](#acquisition-modes)
* [Native installers](#native-installers)
* [Installation script](#installation-script)
+ * [Windows one-liner](#windows-command)
+ * [OSX/Linux one-liner](#osxlinux-shell-command)
* [Complete manual installation](#complete-manual-installation)
* [Docker](#docker)
* [NuGet Packages](#nuget-packages)
@@ -256,6 +258,18 @@ OSX/Linux:
./dotnet-install.sh --channel 2.0
```
+#### Windows obtain one-liner example
+
+```
+@powershell -NoProfile -ExecutionPolicy unrestricted -Command "&([scriptblock]::Create((Invoke-WebRequest -useb 'https://dot.net/v1/dotnet-install.ps1'))) "
+```
+
+#### OSX/Linux obtain one-liner
+
+```
+curl -sSL https://dot.net/v1/dotnet-install.sh | bash /dev/stdin
+```
+
### Docker
[Docker](https://docs.docker.com/) has become a pretty good way to use developer tools, from trying them out in an interactive image use to using it for deployment. We have Docker images on DockerHub already.
diff --git a/Documentation/specs/runtime-configuration-file.md b/Documentation/specs/runtime-configuration-file.md
index fbf6e2c4c..b021f9358 100644
--- a/Documentation/specs/runtime-configuration-file.md
+++ b/Documentation/specs/runtime-configuration-file.md
@@ -9,8 +9,8 @@ The runtime configuration files store the dependencies of an application (former
There are two runtime configuration files for a particular application. Given a project named `MyApp`, the compilation process produces the following files (on Windows, other platforms are similar):
* `MyApp.dll` - The managed assembly for `MyApp`, including an ECMA-compliant entry point token.
-* `MyApp.exe` - A copy of the `corehost.exe` executable.
-* `MyApp.runtimeconfig.json` - An **optional** configuration file containing runtime configuration settings.
+* `MyApp.exe` - A copy of the `corehost.exe` executable. Only present when the application is a self-contained application.
+* `MyApp.runtimeconfig.json` - An **optional** configuration file containing runtime configuration settings. This file is required for portable applications, but not for self-contained apps.
* `MyApp.deps.json` - A list of dependencies, as well as compilation context data and compilation dependencies. Not technically required, but required to use the servicing or package cache/shared package install features.
The `MyApp.runtimeconfig.json` is designed to be user-editable (in the case of an app consumer wanting to change various CLR runtime options for an app, much like the `MyApp.exe.config` XML file works in .NET 4.x today). However, the `MyApp.deps.json` file is designed to be processed by automated tools and should not be user-edited. Having the files as separate makes this clearer. We could use a different format for the deps file, but if we're already integrating a JSON parser into the host, it seems most appropriate to re-use that here. Also, there are diagnostic benefits to being able to read the `.deps.json` file in a simple text editor.
diff --git a/Microsoft.DotNet.Cli.sln b/Microsoft.DotNet.Cli.sln
index 271579431..714749883 100644
--- a/Microsoft.DotNet.Cli.sln
+++ b/Microsoft.DotNet.Cli.sln
@@ -1,6 +1,6 @@
Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio 15
-VisualStudioVersion = 15.0.26510.0
+VisualStudioVersion = 15.0.27004.2008
MinimumVisualStudioVersion = 10.0.40219.1
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{ED2FE3E2-F7E7-4389-8231-B65123F2076F}"
EndProject
@@ -13,8 +13,6 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "test", "test", "{17735A9D-BFD9-4585-A7CB-3208CA6EA8A7}"
EndProject
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tools", "tools", "{0722D325-24C8-4E83-B5AF-0A083E7F0749}"
-EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "build_projects", "build_projects", "{88278B81-7649-45DC-8A6A-D3A645C5AFC3}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "TestAssets", "TestAssets", "{ADA7052B-884B-4776-8B8D-D04191D0AA70}"
@@ -38,6 +36,7 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "build", "build", "{89905EC4
build\Compile.targets = build\Compile.targets
build\CrossGen.props = build\CrossGen.props
build\DependencyVersions.props = build\DependencyVersions.props
+ build\DerivedHostMachineInfo.props = build\DerivedHostMachineInfo.props
build\FileExtensions.props = build\FileExtensions.props
build\GitCommitInfo.targets = build\GitCommitInfo.targets
build\HostInfo.targets = build\HostInfo.targets
@@ -54,12 +53,10 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "build", "build", "{89905EC4
build\Publish.targets = build\Publish.targets
build\RestoreDependency.proj = build\RestoreDependency.proj
build\sdks\sdks.csproj = build\sdks\sdks.csproj
+ build\SetupPreviousStage.props = build\SetupPreviousStage.props
build\Signing.proj = build\Signing.proj
- build\Stage0.props = build\Stage0.props
build\Test.targets = build\Test.targets
build\Version.props = build\Version.props
- build\VersionBadge.props = build\VersionBadge.props
- build\DerivedHostMachineInfo.props = build\DerivedHostMachineInfo.props
EndProjectSection
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "package", "package", "{FD7D515A-D10F-4F49-B8AE-21CF7ED071AE}"
@@ -131,8 +128,6 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "PackageWithFakeNativeDep",
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ToolWithOutputName", "TestAssets\TestPackages\ToolWithOutputName\ToolWithOutputName.csproj", "{8FB83810-5A4C-4097-9A79-8E687E4981CB}"
EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "dotnet-archive", "src\dotnet-archive\dotnet-archive.csproj", "{F0CB08B6-2809-4D37-B1DD-A9B7F1B0D95D}"
-EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "dotnet", "src\dotnet\dotnet.csproj", "{203F0362-DAFC-4679-A01E-7FBC331D8647}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.DotNet.Archive", "src\Microsoft.DotNet.Archive\Microsoft.DotNet.Archive.csproj", "{F8C66E8A-FC59-40B3-AC0F-58CA22526F76}"
@@ -143,16 +138,12 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.DotNet.Configurer
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.DotNet.InternalAbstractions", "src\Microsoft.DotNet.InternalAbstractions\Microsoft.DotNet.InternalAbstractions.csproj", "{570950AD-A080-4F32-980C-F50E312910DF}"
EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.DotNet.TestFramework", "src\Microsoft.DotNet.TestFramework\Microsoft.DotNet.TestFramework.csproj", "{6592A22C-2386-4E83-A4D3-FC08075C723A}"
-EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "redist", "src\redist\redist.csproj", "{098D9321-1201-4974-A75E-F58EBCD98ACF}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "tool_msbuild", "src\tool_msbuild\tool_msbuild.csproj", "{D82A3246-9831-4024-A9B2-1932EEF3D56F}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "tool_nuget", "src\tool_nuget\tool_nuget.csproj", "{BE4C655A-DC54-4408-B739-743456D34111}"
EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Archiver", "tools\Archiver\Archiver.csproj", "{2DFCC95F-75F7-46E1-8F56-256DB4CA98B2}"
-EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ArgumentForwardingTests", "test\ArgumentForwardingTests\ArgumentForwardingTests.csproj", "{3E28672F-F4E4-44D5-AEFB-1F425DECC57E}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ArgumentsReflector", "test\ArgumentsReflector\ArgumentsReflector.csproj", "{A5CA696F-585E-40AB-912C-6316BC330C5E}"
@@ -197,8 +188,6 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.DotNet.Tools.Test
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "msbuild.IntegrationTests", "test\msbuild.IntegrationTests\msbuild.IntegrationTests.csproj", "{23EE9BBB-3B33-4CF2-8D1A-29A8DB12E878}"
EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Performance", "test\Performance\Performance.csproj", "{F5E27BA5-063B-4770-A6E8-87252E9AB22C}"
-EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.DotNet.Cli.Build.Framework", "build_projects\Microsoft.DotNet.Cli.Build.Framework\Microsoft.DotNet.Cli.Build.Framework.csproj", "{AA744891-5209-4335-8457-37EC347DF833}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "shared-build-targets-utils", "build_projects\shared-build-targets-utils\shared-build-targets-utils.csproj", "{DA3595A8-35DE-42B9-97A4-4A2461BAD554}"
@@ -231,6 +220,20 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "dotnet-add-package.Tests",
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "tool_fsc", "src\tool_fsharp\tool_fsc.csproj", "{602976C5-2477-4B4C-AD9A-1EAFB250529A}"
EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.DotNet.MSBuildSdkResolver", "src\Microsoft.DotNet.MSBuildSdkResolver\Microsoft.DotNet.MSBuildSdkResolver.csproj", "{FCDFAF40-CC16-4D49-96C0-E49F195E7142}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "dotnet-cli-build.Tests", "build_projects\dotnet-cli-build.Tests\dotnet-cli-build.Tests.csproj", "{84BB2DD5-B2D8-4C85-AAF9-29D2A74FBF94}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "dotnet-restore.Tests", "test\dotnet-restore.Tests\dotnet-restore.Tests.csproj", "{B4EE3671-C103-4A37-8DEB-C74E0134104E}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.DotNet.TestFramework", "test\Microsoft.DotNet.TestFramework\Microsoft.DotNet.TestFramework.csproj", "{44759218-B558-4AF0-8991-515F1100DCF5}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Msbuild.Tests.Utilities", "test\Msbuild.Tests.Utilities\Msbuild.Tests.Utilities.csproj", "{E7C72EF2-8480-48B4-AAE8-A596F1A6048E}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.DotNet.ToolPackageObtainer.Tests", "test\Microsoft.DotNet.ToolPackageObtainer.Tests\Microsoft.DotNet.ToolPackageObtainer.Tests.csproj", "{F0D50831-9468-4ACB-8FD8-E9883DD553FB}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.DotNet.ShellShimMaker.Tests", "test\Microsoft.DotNet.ShellShimMaker.Tests\Microsoft.DotNet.ShellShimMaker.Tests.csproj", "{20376E28-68EB-4BE5-81A5-51500F1235E2}"
+EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
@@ -511,30 +514,6 @@ Global
{8FB83810-5A4C-4097-9A79-8E687E4981CB}.RelWithDebInfo|x64.Build.0 = Release|Any CPU
{8FB83810-5A4C-4097-9A79-8E687E4981CB}.RelWithDebInfo|x86.ActiveCfg = Release|Any CPU
{8FB83810-5A4C-4097-9A79-8E687E4981CB}.RelWithDebInfo|x86.Build.0 = Release|Any CPU
- {F0CB08B6-2809-4D37-B1DD-A9B7F1B0D95D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {F0CB08B6-2809-4D37-B1DD-A9B7F1B0D95D}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {F0CB08B6-2809-4D37-B1DD-A9B7F1B0D95D}.Debug|x64.ActiveCfg = Release|Any CPU
- {F0CB08B6-2809-4D37-B1DD-A9B7F1B0D95D}.Debug|x64.Build.0 = Release|Any CPU
- {F0CB08B6-2809-4D37-B1DD-A9B7F1B0D95D}.Debug|x86.ActiveCfg = Release|Any CPU
- {F0CB08B6-2809-4D37-B1DD-A9B7F1B0D95D}.Debug|x86.Build.0 = Release|Any CPU
- {F0CB08B6-2809-4D37-B1DD-A9B7F1B0D95D}.MinSizeRel|Any CPU.ActiveCfg = Release|Any CPU
- {F0CB08B6-2809-4D37-B1DD-A9B7F1B0D95D}.MinSizeRel|Any CPU.Build.0 = Release|Any CPU
- {F0CB08B6-2809-4D37-B1DD-A9B7F1B0D95D}.MinSizeRel|x64.ActiveCfg = Release|Any CPU
- {F0CB08B6-2809-4D37-B1DD-A9B7F1B0D95D}.MinSizeRel|x64.Build.0 = Release|Any CPU
- {F0CB08B6-2809-4D37-B1DD-A9B7F1B0D95D}.MinSizeRel|x86.ActiveCfg = Release|Any CPU
- {F0CB08B6-2809-4D37-B1DD-A9B7F1B0D95D}.MinSizeRel|x86.Build.0 = Release|Any CPU
- {F0CB08B6-2809-4D37-B1DD-A9B7F1B0D95D}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {F0CB08B6-2809-4D37-B1DD-A9B7F1B0D95D}.Release|Any CPU.Build.0 = Release|Any CPU
- {F0CB08B6-2809-4D37-B1DD-A9B7F1B0D95D}.Release|x64.ActiveCfg = Release|Any CPU
- {F0CB08B6-2809-4D37-B1DD-A9B7F1B0D95D}.Release|x64.Build.0 = Release|Any CPU
- {F0CB08B6-2809-4D37-B1DD-A9B7F1B0D95D}.Release|x86.ActiveCfg = Release|Any CPU
- {F0CB08B6-2809-4D37-B1DD-A9B7F1B0D95D}.Release|x86.Build.0 = Release|Any CPU
- {F0CB08B6-2809-4D37-B1DD-A9B7F1B0D95D}.RelWithDebInfo|Any CPU.ActiveCfg = Release|Any CPU
- {F0CB08B6-2809-4D37-B1DD-A9B7F1B0D95D}.RelWithDebInfo|Any CPU.Build.0 = Release|Any CPU
- {F0CB08B6-2809-4D37-B1DD-A9B7F1B0D95D}.RelWithDebInfo|x64.ActiveCfg = Release|Any CPU
- {F0CB08B6-2809-4D37-B1DD-A9B7F1B0D95D}.RelWithDebInfo|x64.Build.0 = Release|Any CPU
- {F0CB08B6-2809-4D37-B1DD-A9B7F1B0D95D}.RelWithDebInfo|x86.ActiveCfg = Release|Any CPU
- {F0CB08B6-2809-4D37-B1DD-A9B7F1B0D95D}.RelWithDebInfo|x86.Build.0 = Release|Any CPU
{203F0362-DAFC-4679-A01E-7FBC331D8647}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{203F0362-DAFC-4679-A01E-7FBC331D8647}.Debug|Any CPU.Build.0 = Debug|Any CPU
{203F0362-DAFC-4679-A01E-7FBC331D8647}.Debug|x64.ActiveCfg = Release|Any CPU
@@ -655,30 +634,6 @@ Global
{570950AD-A080-4F32-980C-F50E312910DF}.RelWithDebInfo|x64.Build.0 = Release|Any CPU
{570950AD-A080-4F32-980C-F50E312910DF}.RelWithDebInfo|x86.ActiveCfg = Release|Any CPU
{570950AD-A080-4F32-980C-F50E312910DF}.RelWithDebInfo|x86.Build.0 = Release|Any CPU
- {6592A22C-2386-4E83-A4D3-FC08075C723A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {6592A22C-2386-4E83-A4D3-FC08075C723A}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {6592A22C-2386-4E83-A4D3-FC08075C723A}.Debug|x64.ActiveCfg = Release|Any CPU
- {6592A22C-2386-4E83-A4D3-FC08075C723A}.Debug|x64.Build.0 = Release|Any CPU
- {6592A22C-2386-4E83-A4D3-FC08075C723A}.Debug|x86.ActiveCfg = Release|Any CPU
- {6592A22C-2386-4E83-A4D3-FC08075C723A}.Debug|x86.Build.0 = Release|Any CPU
- {6592A22C-2386-4E83-A4D3-FC08075C723A}.MinSizeRel|Any CPU.ActiveCfg = Release|Any CPU
- {6592A22C-2386-4E83-A4D3-FC08075C723A}.MinSizeRel|Any CPU.Build.0 = Release|Any CPU
- {6592A22C-2386-4E83-A4D3-FC08075C723A}.MinSizeRel|x64.ActiveCfg = Release|Any CPU
- {6592A22C-2386-4E83-A4D3-FC08075C723A}.MinSizeRel|x64.Build.0 = Release|Any CPU
- {6592A22C-2386-4E83-A4D3-FC08075C723A}.MinSizeRel|x86.ActiveCfg = Release|Any CPU
- {6592A22C-2386-4E83-A4D3-FC08075C723A}.MinSizeRel|x86.Build.0 = Release|Any CPU
- {6592A22C-2386-4E83-A4D3-FC08075C723A}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {6592A22C-2386-4E83-A4D3-FC08075C723A}.Release|Any CPU.Build.0 = Release|Any CPU
- {6592A22C-2386-4E83-A4D3-FC08075C723A}.Release|x64.ActiveCfg = Release|Any CPU
- {6592A22C-2386-4E83-A4D3-FC08075C723A}.Release|x64.Build.0 = Release|Any CPU
- {6592A22C-2386-4E83-A4D3-FC08075C723A}.Release|x86.ActiveCfg = Release|Any CPU
- {6592A22C-2386-4E83-A4D3-FC08075C723A}.Release|x86.Build.0 = Release|Any CPU
- {6592A22C-2386-4E83-A4D3-FC08075C723A}.RelWithDebInfo|Any CPU.ActiveCfg = Release|Any CPU
- {6592A22C-2386-4E83-A4D3-FC08075C723A}.RelWithDebInfo|Any CPU.Build.0 = Release|Any CPU
- {6592A22C-2386-4E83-A4D3-FC08075C723A}.RelWithDebInfo|x64.ActiveCfg = Release|Any CPU
- {6592A22C-2386-4E83-A4D3-FC08075C723A}.RelWithDebInfo|x64.Build.0 = Release|Any CPU
- {6592A22C-2386-4E83-A4D3-FC08075C723A}.RelWithDebInfo|x86.ActiveCfg = Release|Any CPU
- {6592A22C-2386-4E83-A4D3-FC08075C723A}.RelWithDebInfo|x86.Build.0 = Release|Any CPU
{098D9321-1201-4974-A75E-F58EBCD98ACF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{098D9321-1201-4974-A75E-F58EBCD98ACF}.Debug|Any CPU.Build.0 = Debug|Any CPU
{098D9321-1201-4974-A75E-F58EBCD98ACF}.Debug|x64.ActiveCfg = Release|Any CPU
@@ -751,30 +706,6 @@ Global
{BE4C655A-DC54-4408-B739-743456D34111}.RelWithDebInfo|x64.Build.0 = Release|Any CPU
{BE4C655A-DC54-4408-B739-743456D34111}.RelWithDebInfo|x86.ActiveCfg = Release|Any CPU
{BE4C655A-DC54-4408-B739-743456D34111}.RelWithDebInfo|x86.Build.0 = Release|Any CPU
- {2DFCC95F-75F7-46E1-8F56-256DB4CA98B2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {2DFCC95F-75F7-46E1-8F56-256DB4CA98B2}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {2DFCC95F-75F7-46E1-8F56-256DB4CA98B2}.Debug|x64.ActiveCfg = Release|Any CPU
- {2DFCC95F-75F7-46E1-8F56-256DB4CA98B2}.Debug|x64.Build.0 = Release|Any CPU
- {2DFCC95F-75F7-46E1-8F56-256DB4CA98B2}.Debug|x86.ActiveCfg = Release|Any CPU
- {2DFCC95F-75F7-46E1-8F56-256DB4CA98B2}.Debug|x86.Build.0 = Release|Any CPU
- {2DFCC95F-75F7-46E1-8F56-256DB4CA98B2}.MinSizeRel|Any CPU.ActiveCfg = Release|Any CPU
- {2DFCC95F-75F7-46E1-8F56-256DB4CA98B2}.MinSizeRel|Any CPU.Build.0 = Release|Any CPU
- {2DFCC95F-75F7-46E1-8F56-256DB4CA98B2}.MinSizeRel|x64.ActiveCfg = Release|Any CPU
- {2DFCC95F-75F7-46E1-8F56-256DB4CA98B2}.MinSizeRel|x64.Build.0 = Release|Any CPU
- {2DFCC95F-75F7-46E1-8F56-256DB4CA98B2}.MinSizeRel|x86.ActiveCfg = Release|Any CPU
- {2DFCC95F-75F7-46E1-8F56-256DB4CA98B2}.MinSizeRel|x86.Build.0 = Release|Any CPU
- {2DFCC95F-75F7-46E1-8F56-256DB4CA98B2}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {2DFCC95F-75F7-46E1-8F56-256DB4CA98B2}.Release|Any CPU.Build.0 = Release|Any CPU
- {2DFCC95F-75F7-46E1-8F56-256DB4CA98B2}.Release|x64.ActiveCfg = Release|Any CPU
- {2DFCC95F-75F7-46E1-8F56-256DB4CA98B2}.Release|x64.Build.0 = Release|Any CPU
- {2DFCC95F-75F7-46E1-8F56-256DB4CA98B2}.Release|x86.ActiveCfg = Release|Any CPU
- {2DFCC95F-75F7-46E1-8F56-256DB4CA98B2}.Release|x86.Build.0 = Release|Any CPU
- {2DFCC95F-75F7-46E1-8F56-256DB4CA98B2}.RelWithDebInfo|Any CPU.ActiveCfg = Release|Any CPU
- {2DFCC95F-75F7-46E1-8F56-256DB4CA98B2}.RelWithDebInfo|Any CPU.Build.0 = Release|Any CPU
- {2DFCC95F-75F7-46E1-8F56-256DB4CA98B2}.RelWithDebInfo|x64.ActiveCfg = Release|Any CPU
- {2DFCC95F-75F7-46E1-8F56-256DB4CA98B2}.RelWithDebInfo|x64.Build.0 = Release|Any CPU
- {2DFCC95F-75F7-46E1-8F56-256DB4CA98B2}.RelWithDebInfo|x86.ActiveCfg = Release|Any CPU
- {2DFCC95F-75F7-46E1-8F56-256DB4CA98B2}.RelWithDebInfo|x86.Build.0 = Release|Any CPU
{3E28672F-F4E4-44D5-AEFB-1F425DECC57E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{3E28672F-F4E4-44D5-AEFB-1F425DECC57E}.Debug|Any CPU.Build.0 = Debug|Any CPU
{3E28672F-F4E4-44D5-AEFB-1F425DECC57E}.Debug|x64.ActiveCfg = Release|Any CPU
@@ -1303,30 +1234,6 @@ Global
{23EE9BBB-3B33-4CF2-8D1A-29A8DB12E878}.RelWithDebInfo|x64.Build.0 = Release|Any CPU
{23EE9BBB-3B33-4CF2-8D1A-29A8DB12E878}.RelWithDebInfo|x86.ActiveCfg = Release|Any CPU
{23EE9BBB-3B33-4CF2-8D1A-29A8DB12E878}.RelWithDebInfo|x86.Build.0 = Release|Any CPU
- {F5E27BA5-063B-4770-A6E8-87252E9AB22C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {F5E27BA5-063B-4770-A6E8-87252E9AB22C}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {F5E27BA5-063B-4770-A6E8-87252E9AB22C}.Debug|x64.ActiveCfg = Release|Any CPU
- {F5E27BA5-063B-4770-A6E8-87252E9AB22C}.Debug|x64.Build.0 = Release|Any CPU
- {F5E27BA5-063B-4770-A6E8-87252E9AB22C}.Debug|x86.ActiveCfg = Release|Any CPU
- {F5E27BA5-063B-4770-A6E8-87252E9AB22C}.Debug|x86.Build.0 = Release|Any CPU
- {F5E27BA5-063B-4770-A6E8-87252E9AB22C}.MinSizeRel|Any CPU.ActiveCfg = Release|Any CPU
- {F5E27BA5-063B-4770-A6E8-87252E9AB22C}.MinSizeRel|Any CPU.Build.0 = Release|Any CPU
- {F5E27BA5-063B-4770-A6E8-87252E9AB22C}.MinSizeRel|x64.ActiveCfg = Release|Any CPU
- {F5E27BA5-063B-4770-A6E8-87252E9AB22C}.MinSizeRel|x64.Build.0 = Release|Any CPU
- {F5E27BA5-063B-4770-A6E8-87252E9AB22C}.MinSizeRel|x86.ActiveCfg = Release|Any CPU
- {F5E27BA5-063B-4770-A6E8-87252E9AB22C}.MinSizeRel|x86.Build.0 = Release|Any CPU
- {F5E27BA5-063B-4770-A6E8-87252E9AB22C}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {F5E27BA5-063B-4770-A6E8-87252E9AB22C}.Release|Any CPU.Build.0 = Release|Any CPU
- {F5E27BA5-063B-4770-A6E8-87252E9AB22C}.Release|x64.ActiveCfg = Release|Any CPU
- {F5E27BA5-063B-4770-A6E8-87252E9AB22C}.Release|x64.Build.0 = Release|Any CPU
- {F5E27BA5-063B-4770-A6E8-87252E9AB22C}.Release|x86.ActiveCfg = Release|Any CPU
- {F5E27BA5-063B-4770-A6E8-87252E9AB22C}.Release|x86.Build.0 = Release|Any CPU
- {F5E27BA5-063B-4770-A6E8-87252E9AB22C}.RelWithDebInfo|Any CPU.ActiveCfg = Release|Any CPU
- {F5E27BA5-063B-4770-A6E8-87252E9AB22C}.RelWithDebInfo|Any CPU.Build.0 = Release|Any CPU
- {F5E27BA5-063B-4770-A6E8-87252E9AB22C}.RelWithDebInfo|x64.ActiveCfg = Release|Any CPU
- {F5E27BA5-063B-4770-A6E8-87252E9AB22C}.RelWithDebInfo|x64.Build.0 = Release|Any CPU
- {F5E27BA5-063B-4770-A6E8-87252E9AB22C}.RelWithDebInfo|x86.ActiveCfg = Release|Any CPU
- {F5E27BA5-063B-4770-A6E8-87252E9AB22C}.RelWithDebInfo|x86.Build.0 = Release|Any CPU
{AA744891-5209-4335-8457-37EC347DF833}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{AA744891-5209-4335-8457-37EC347DF833}.Debug|Any CPU.Build.0 = Debug|Any CPU
{AA744891-5209-4335-8457-37EC347DF833}.Debug|x64.ActiveCfg = Release|Any CPU
@@ -1567,6 +1474,198 @@ Global
{08A40B6A-F695-4EA9-AC8D-CF88FADEA796}.RelWithDebInfo|x64.Build.0 = Release|Any CPU
{08A40B6A-F695-4EA9-AC8D-CF88FADEA796}.RelWithDebInfo|x86.ActiveCfg = Release|Any CPU
{08A40B6A-F695-4EA9-AC8D-CF88FADEA796}.RelWithDebInfo|x86.Build.0 = Release|Any CPU
+ {602976C5-2477-4B4C-AD9A-1EAFB250529A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {602976C5-2477-4B4C-AD9A-1EAFB250529A}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {602976C5-2477-4B4C-AD9A-1EAFB250529A}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {602976C5-2477-4B4C-AD9A-1EAFB250529A}.Debug|x64.Build.0 = Debug|Any CPU
+ {602976C5-2477-4B4C-AD9A-1EAFB250529A}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {602976C5-2477-4B4C-AD9A-1EAFB250529A}.Debug|x86.Build.0 = Debug|Any CPU
+ {602976C5-2477-4B4C-AD9A-1EAFB250529A}.MinSizeRel|Any CPU.ActiveCfg = Debug|Any CPU
+ {602976C5-2477-4B4C-AD9A-1EAFB250529A}.MinSizeRel|Any CPU.Build.0 = Debug|Any CPU
+ {602976C5-2477-4B4C-AD9A-1EAFB250529A}.MinSizeRel|x64.ActiveCfg = Debug|Any CPU
+ {602976C5-2477-4B4C-AD9A-1EAFB250529A}.MinSizeRel|x64.Build.0 = Debug|Any CPU
+ {602976C5-2477-4B4C-AD9A-1EAFB250529A}.MinSizeRel|x86.ActiveCfg = Debug|Any CPU
+ {602976C5-2477-4B4C-AD9A-1EAFB250529A}.MinSizeRel|x86.Build.0 = Debug|Any CPU
+ {602976C5-2477-4B4C-AD9A-1EAFB250529A}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {602976C5-2477-4B4C-AD9A-1EAFB250529A}.Release|Any CPU.Build.0 = Release|Any CPU
+ {602976C5-2477-4B4C-AD9A-1EAFB250529A}.Release|x64.ActiveCfg = Release|Any CPU
+ {602976C5-2477-4B4C-AD9A-1EAFB250529A}.Release|x64.Build.0 = Release|Any CPU
+ {602976C5-2477-4B4C-AD9A-1EAFB250529A}.Release|x86.ActiveCfg = Release|Any CPU
+ {602976C5-2477-4B4C-AD9A-1EAFB250529A}.Release|x86.Build.0 = Release|Any CPU
+ {602976C5-2477-4B4C-AD9A-1EAFB250529A}.RelWithDebInfo|Any CPU.ActiveCfg = Release|Any CPU
+ {602976C5-2477-4B4C-AD9A-1EAFB250529A}.RelWithDebInfo|Any CPU.Build.0 = Release|Any CPU
+ {602976C5-2477-4B4C-AD9A-1EAFB250529A}.RelWithDebInfo|x64.ActiveCfg = Release|Any CPU
+ {602976C5-2477-4B4C-AD9A-1EAFB250529A}.RelWithDebInfo|x64.Build.0 = Release|Any CPU
+ {602976C5-2477-4B4C-AD9A-1EAFB250529A}.RelWithDebInfo|x86.ActiveCfg = Release|Any CPU
+ {602976C5-2477-4B4C-AD9A-1EAFB250529A}.RelWithDebInfo|x86.Build.0 = Release|Any CPU
+ {FCDFAF40-CC16-4D49-96C0-E49F195E7142}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {FCDFAF40-CC16-4D49-96C0-E49F195E7142}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {FCDFAF40-CC16-4D49-96C0-E49F195E7142}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {FCDFAF40-CC16-4D49-96C0-E49F195E7142}.Debug|x64.Build.0 = Debug|Any CPU
+ {FCDFAF40-CC16-4D49-96C0-E49F195E7142}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {FCDFAF40-CC16-4D49-96C0-E49F195E7142}.Debug|x86.Build.0 = Debug|Any CPU
+ {FCDFAF40-CC16-4D49-96C0-E49F195E7142}.MinSizeRel|Any CPU.ActiveCfg = Release|Any CPU
+ {FCDFAF40-CC16-4D49-96C0-E49F195E7142}.MinSizeRel|Any CPU.Build.0 = Release|Any CPU
+ {FCDFAF40-CC16-4D49-96C0-E49F195E7142}.MinSizeRel|x64.ActiveCfg = Release|Any CPU
+ {FCDFAF40-CC16-4D49-96C0-E49F195E7142}.MinSizeRel|x64.Build.0 = Release|Any CPU
+ {FCDFAF40-CC16-4D49-96C0-E49F195E7142}.MinSizeRel|x86.ActiveCfg = Release|Any CPU
+ {FCDFAF40-CC16-4D49-96C0-E49F195E7142}.MinSizeRel|x86.Build.0 = Release|Any CPU
+ {FCDFAF40-CC16-4D49-96C0-E49F195E7142}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {FCDFAF40-CC16-4D49-96C0-E49F195E7142}.Release|Any CPU.Build.0 = Release|Any CPU
+ {FCDFAF40-CC16-4D49-96C0-E49F195E7142}.Release|x64.ActiveCfg = Release|Any CPU
+ {FCDFAF40-CC16-4D49-96C0-E49F195E7142}.Release|x64.Build.0 = Release|Any CPU
+ {FCDFAF40-CC16-4D49-96C0-E49F195E7142}.Release|x86.ActiveCfg = Release|Any CPU
+ {FCDFAF40-CC16-4D49-96C0-E49F195E7142}.Release|x86.Build.0 = Release|Any CPU
+ {FCDFAF40-CC16-4D49-96C0-E49F195E7142}.RelWithDebInfo|Any CPU.ActiveCfg = Release|Any CPU
+ {FCDFAF40-CC16-4D49-96C0-E49F195E7142}.RelWithDebInfo|Any CPU.Build.0 = Release|Any CPU
+ {FCDFAF40-CC16-4D49-96C0-E49F195E7142}.RelWithDebInfo|x64.ActiveCfg = Release|Any CPU
+ {FCDFAF40-CC16-4D49-96C0-E49F195E7142}.RelWithDebInfo|x64.Build.0 = Release|Any CPU
+ {FCDFAF40-CC16-4D49-96C0-E49F195E7142}.RelWithDebInfo|x86.ActiveCfg = Release|Any CPU
+ {FCDFAF40-CC16-4D49-96C0-E49F195E7142}.RelWithDebInfo|x86.Build.0 = Release|Any CPU
+ {84BB2DD5-B2D8-4C85-AAF9-29D2A74FBF94}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {84BB2DD5-B2D8-4C85-AAF9-29D2A74FBF94}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {84BB2DD5-B2D8-4C85-AAF9-29D2A74FBF94}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {84BB2DD5-B2D8-4C85-AAF9-29D2A74FBF94}.Debug|x64.Build.0 = Debug|Any CPU
+ {84BB2DD5-B2D8-4C85-AAF9-29D2A74FBF94}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {84BB2DD5-B2D8-4C85-AAF9-29D2A74FBF94}.Debug|x86.Build.0 = Debug|Any CPU
+ {84BB2DD5-B2D8-4C85-AAF9-29D2A74FBF94}.MinSizeRel|Any CPU.ActiveCfg = Debug|Any CPU
+ {84BB2DD5-B2D8-4C85-AAF9-29D2A74FBF94}.MinSizeRel|Any CPU.Build.0 = Debug|Any CPU
+ {84BB2DD5-B2D8-4C85-AAF9-29D2A74FBF94}.MinSizeRel|x64.ActiveCfg = Debug|Any CPU
+ {84BB2DD5-B2D8-4C85-AAF9-29D2A74FBF94}.MinSizeRel|x64.Build.0 = Debug|Any CPU
+ {84BB2DD5-B2D8-4C85-AAF9-29D2A74FBF94}.MinSizeRel|x86.ActiveCfg = Debug|Any CPU
+ {84BB2DD5-B2D8-4C85-AAF9-29D2A74FBF94}.MinSizeRel|x86.Build.0 = Debug|Any CPU
+ {84BB2DD5-B2D8-4C85-AAF9-29D2A74FBF94}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {84BB2DD5-B2D8-4C85-AAF9-29D2A74FBF94}.Release|Any CPU.Build.0 = Release|Any CPU
+ {84BB2DD5-B2D8-4C85-AAF9-29D2A74FBF94}.Release|x64.ActiveCfg = Release|Any CPU
+ {84BB2DD5-B2D8-4C85-AAF9-29D2A74FBF94}.Release|x64.Build.0 = Release|Any CPU
+ {84BB2DD5-B2D8-4C85-AAF9-29D2A74FBF94}.Release|x86.ActiveCfg = Release|Any CPU
+ {84BB2DD5-B2D8-4C85-AAF9-29D2A74FBF94}.Release|x86.Build.0 = Release|Any CPU
+ {84BB2DD5-B2D8-4C85-AAF9-29D2A74FBF94}.RelWithDebInfo|Any CPU.ActiveCfg = Release|Any CPU
+ {84BB2DD5-B2D8-4C85-AAF9-29D2A74FBF94}.RelWithDebInfo|Any CPU.Build.0 = Release|Any CPU
+ {84BB2DD5-B2D8-4C85-AAF9-29D2A74FBF94}.RelWithDebInfo|x64.ActiveCfg = Release|Any CPU
+ {84BB2DD5-B2D8-4C85-AAF9-29D2A74FBF94}.RelWithDebInfo|x64.Build.0 = Release|Any CPU
+ {84BB2DD5-B2D8-4C85-AAF9-29D2A74FBF94}.RelWithDebInfo|x86.ActiveCfg = Release|Any CPU
+ {84BB2DD5-B2D8-4C85-AAF9-29D2A74FBF94}.RelWithDebInfo|x86.Build.0 = Release|Any CPU
+ {B4EE3671-C103-4A37-8DEB-C74E0134104E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {B4EE3671-C103-4A37-8DEB-C74E0134104E}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {B4EE3671-C103-4A37-8DEB-C74E0134104E}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {B4EE3671-C103-4A37-8DEB-C74E0134104E}.Debug|x64.Build.0 = Debug|Any CPU
+ {B4EE3671-C103-4A37-8DEB-C74E0134104E}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {B4EE3671-C103-4A37-8DEB-C74E0134104E}.Debug|x86.Build.0 = Debug|Any CPU
+ {B4EE3671-C103-4A37-8DEB-C74E0134104E}.MinSizeRel|Any CPU.ActiveCfg = Debug|Any CPU
+ {B4EE3671-C103-4A37-8DEB-C74E0134104E}.MinSizeRel|Any CPU.Build.0 = Debug|Any CPU
+ {B4EE3671-C103-4A37-8DEB-C74E0134104E}.MinSizeRel|x64.ActiveCfg = Debug|Any CPU
+ {B4EE3671-C103-4A37-8DEB-C74E0134104E}.MinSizeRel|x64.Build.0 = Debug|Any CPU
+ {B4EE3671-C103-4A37-8DEB-C74E0134104E}.MinSizeRel|x86.ActiveCfg = Debug|Any CPU
+ {B4EE3671-C103-4A37-8DEB-C74E0134104E}.MinSizeRel|x86.Build.0 = Debug|Any CPU
+ {B4EE3671-C103-4A37-8DEB-C74E0134104E}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {B4EE3671-C103-4A37-8DEB-C74E0134104E}.Release|Any CPU.Build.0 = Release|Any CPU
+ {B4EE3671-C103-4A37-8DEB-C74E0134104E}.Release|x64.ActiveCfg = Release|Any CPU
+ {B4EE3671-C103-4A37-8DEB-C74E0134104E}.Release|x64.Build.0 = Release|Any CPU
+ {B4EE3671-C103-4A37-8DEB-C74E0134104E}.Release|x86.ActiveCfg = Release|Any CPU
+ {B4EE3671-C103-4A37-8DEB-C74E0134104E}.Release|x86.Build.0 = Release|Any CPU
+ {B4EE3671-C103-4A37-8DEB-C74E0134104E}.RelWithDebInfo|Any CPU.ActiveCfg = Release|Any CPU
+ {B4EE3671-C103-4A37-8DEB-C74E0134104E}.RelWithDebInfo|Any CPU.Build.0 = Release|Any CPU
+ {B4EE3671-C103-4A37-8DEB-C74E0134104E}.RelWithDebInfo|x64.ActiveCfg = Release|Any CPU
+ {B4EE3671-C103-4A37-8DEB-C74E0134104E}.RelWithDebInfo|x64.Build.0 = Release|Any CPU
+ {B4EE3671-C103-4A37-8DEB-C74E0134104E}.RelWithDebInfo|x86.ActiveCfg = Release|Any CPU
+ {B4EE3671-C103-4A37-8DEB-C74E0134104E}.RelWithDebInfo|x86.Build.0 = Release|Any CPU
+ {44759218-B558-4AF0-8991-515F1100DCF5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {44759218-B558-4AF0-8991-515F1100DCF5}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {44759218-B558-4AF0-8991-515F1100DCF5}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {44759218-B558-4AF0-8991-515F1100DCF5}.Debug|x64.Build.0 = Debug|Any CPU
+ {44759218-B558-4AF0-8991-515F1100DCF5}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {44759218-B558-4AF0-8991-515F1100DCF5}.Debug|x86.Build.0 = Debug|Any CPU
+ {44759218-B558-4AF0-8991-515F1100DCF5}.MinSizeRel|Any CPU.ActiveCfg = Debug|Any CPU
+ {44759218-B558-4AF0-8991-515F1100DCF5}.MinSizeRel|Any CPU.Build.0 = Debug|Any CPU
+ {44759218-B558-4AF0-8991-515F1100DCF5}.MinSizeRel|x64.ActiveCfg = Debug|Any CPU
+ {44759218-B558-4AF0-8991-515F1100DCF5}.MinSizeRel|x64.Build.0 = Debug|Any CPU
+ {44759218-B558-4AF0-8991-515F1100DCF5}.MinSizeRel|x86.ActiveCfg = Debug|Any CPU
+ {44759218-B558-4AF0-8991-515F1100DCF5}.MinSizeRel|x86.Build.0 = Debug|Any CPU
+ {44759218-B558-4AF0-8991-515F1100DCF5}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {44759218-B558-4AF0-8991-515F1100DCF5}.Release|Any CPU.Build.0 = Release|Any CPU
+ {44759218-B558-4AF0-8991-515F1100DCF5}.Release|x64.ActiveCfg = Release|Any CPU
+ {44759218-B558-4AF0-8991-515F1100DCF5}.Release|x64.Build.0 = Release|Any CPU
+ {44759218-B558-4AF0-8991-515F1100DCF5}.Release|x86.ActiveCfg = Release|Any CPU
+ {44759218-B558-4AF0-8991-515F1100DCF5}.Release|x86.Build.0 = Release|Any CPU
+ {44759218-B558-4AF0-8991-515F1100DCF5}.RelWithDebInfo|Any CPU.ActiveCfg = Release|Any CPU
+ {44759218-B558-4AF0-8991-515F1100DCF5}.RelWithDebInfo|Any CPU.Build.0 = Release|Any CPU
+ {44759218-B558-4AF0-8991-515F1100DCF5}.RelWithDebInfo|x64.ActiveCfg = Release|Any CPU
+ {44759218-B558-4AF0-8991-515F1100DCF5}.RelWithDebInfo|x64.Build.0 = Release|Any CPU
+ {44759218-B558-4AF0-8991-515F1100DCF5}.RelWithDebInfo|x86.ActiveCfg = Release|Any CPU
+ {44759218-B558-4AF0-8991-515F1100DCF5}.RelWithDebInfo|x86.Build.0 = Release|Any CPU
+ {E7C72EF2-8480-48B4-AAE8-A596F1A6048E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {E7C72EF2-8480-48B4-AAE8-A596F1A6048E}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {E7C72EF2-8480-48B4-AAE8-A596F1A6048E}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {E7C72EF2-8480-48B4-AAE8-A596F1A6048E}.Debug|x64.Build.0 = Debug|Any CPU
+ {E7C72EF2-8480-48B4-AAE8-A596F1A6048E}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {E7C72EF2-8480-48B4-AAE8-A596F1A6048E}.Debug|x86.Build.0 = Debug|Any CPU
+ {E7C72EF2-8480-48B4-AAE8-A596F1A6048E}.MinSizeRel|Any CPU.ActiveCfg = Debug|Any CPU
+ {E7C72EF2-8480-48B4-AAE8-A596F1A6048E}.MinSizeRel|Any CPU.Build.0 = Debug|Any CPU
+ {E7C72EF2-8480-48B4-AAE8-A596F1A6048E}.MinSizeRel|x64.ActiveCfg = Debug|Any CPU
+ {E7C72EF2-8480-48B4-AAE8-A596F1A6048E}.MinSizeRel|x64.Build.0 = Debug|Any CPU
+ {E7C72EF2-8480-48B4-AAE8-A596F1A6048E}.MinSizeRel|x86.ActiveCfg = Debug|Any CPU
+ {E7C72EF2-8480-48B4-AAE8-A596F1A6048E}.MinSizeRel|x86.Build.0 = Debug|Any CPU
+ {E7C72EF2-8480-48B4-AAE8-A596F1A6048E}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {E7C72EF2-8480-48B4-AAE8-A596F1A6048E}.Release|Any CPU.Build.0 = Release|Any CPU
+ {E7C72EF2-8480-48B4-AAE8-A596F1A6048E}.Release|x64.ActiveCfg = Release|Any CPU
+ {E7C72EF2-8480-48B4-AAE8-A596F1A6048E}.Release|x64.Build.0 = Release|Any CPU
+ {E7C72EF2-8480-48B4-AAE8-A596F1A6048E}.Release|x86.ActiveCfg = Release|Any CPU
+ {E7C72EF2-8480-48B4-AAE8-A596F1A6048E}.Release|x86.Build.0 = Release|Any CPU
+ {E7C72EF2-8480-48B4-AAE8-A596F1A6048E}.RelWithDebInfo|Any CPU.ActiveCfg = Release|Any CPU
+ {E7C72EF2-8480-48B4-AAE8-A596F1A6048E}.RelWithDebInfo|Any CPU.Build.0 = Release|Any CPU
+ {E7C72EF2-8480-48B4-AAE8-A596F1A6048E}.RelWithDebInfo|x64.ActiveCfg = Release|Any CPU
+ {E7C72EF2-8480-48B4-AAE8-A596F1A6048E}.RelWithDebInfo|x64.Build.0 = Release|Any CPU
+ {E7C72EF2-8480-48B4-AAE8-A596F1A6048E}.RelWithDebInfo|x86.ActiveCfg = Release|Any CPU
+ {E7C72EF2-8480-48B4-AAE8-A596F1A6048E}.RelWithDebInfo|x86.Build.0 = Release|Any CPU
+ {F0D50831-9468-4ACB-8FD8-E9883DD553FB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {F0D50831-9468-4ACB-8FD8-E9883DD553FB}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {F0D50831-9468-4ACB-8FD8-E9883DD553FB}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {F0D50831-9468-4ACB-8FD8-E9883DD553FB}.Debug|x64.Build.0 = Debug|Any CPU
+ {F0D50831-9468-4ACB-8FD8-E9883DD553FB}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {F0D50831-9468-4ACB-8FD8-E9883DD553FB}.Debug|x86.Build.0 = Debug|Any CPU
+ {F0D50831-9468-4ACB-8FD8-E9883DD553FB}.MinSizeRel|Any CPU.ActiveCfg = Debug|Any CPU
+ {F0D50831-9468-4ACB-8FD8-E9883DD553FB}.MinSizeRel|Any CPU.Build.0 = Debug|Any CPU
+ {F0D50831-9468-4ACB-8FD8-E9883DD553FB}.MinSizeRel|x64.ActiveCfg = Debug|Any CPU
+ {F0D50831-9468-4ACB-8FD8-E9883DD553FB}.MinSizeRel|x64.Build.0 = Debug|Any CPU
+ {F0D50831-9468-4ACB-8FD8-E9883DD553FB}.MinSizeRel|x86.ActiveCfg = Debug|Any CPU
+ {F0D50831-9468-4ACB-8FD8-E9883DD553FB}.MinSizeRel|x86.Build.0 = Debug|Any CPU
+ {F0D50831-9468-4ACB-8FD8-E9883DD553FB}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {F0D50831-9468-4ACB-8FD8-E9883DD553FB}.Release|Any CPU.Build.0 = Release|Any CPU
+ {F0D50831-9468-4ACB-8FD8-E9883DD553FB}.Release|x64.ActiveCfg = Release|Any CPU
+ {F0D50831-9468-4ACB-8FD8-E9883DD553FB}.Release|x64.Build.0 = Release|Any CPU
+ {F0D50831-9468-4ACB-8FD8-E9883DD553FB}.Release|x86.ActiveCfg = Release|Any CPU
+ {F0D50831-9468-4ACB-8FD8-E9883DD553FB}.Release|x86.Build.0 = Release|Any CPU
+ {F0D50831-9468-4ACB-8FD8-E9883DD553FB}.RelWithDebInfo|Any CPU.ActiveCfg = Release|Any CPU
+ {F0D50831-9468-4ACB-8FD8-E9883DD553FB}.RelWithDebInfo|Any CPU.Build.0 = Release|Any CPU
+ {F0D50831-9468-4ACB-8FD8-E9883DD553FB}.RelWithDebInfo|x64.ActiveCfg = Release|Any CPU
+ {F0D50831-9468-4ACB-8FD8-E9883DD553FB}.RelWithDebInfo|x64.Build.0 = Release|Any CPU
+ {F0D50831-9468-4ACB-8FD8-E9883DD553FB}.RelWithDebInfo|x86.ActiveCfg = Release|Any CPU
+ {F0D50831-9468-4ACB-8FD8-E9883DD553FB}.RelWithDebInfo|x86.Build.0 = Release|Any CPU
+ {20376E28-68EB-4BE5-81A5-51500F1235E2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {20376E28-68EB-4BE5-81A5-51500F1235E2}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {20376E28-68EB-4BE5-81A5-51500F1235E2}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {20376E28-68EB-4BE5-81A5-51500F1235E2}.Debug|x64.Build.0 = Debug|Any CPU
+ {20376E28-68EB-4BE5-81A5-51500F1235E2}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {20376E28-68EB-4BE5-81A5-51500F1235E2}.Debug|x86.Build.0 = Debug|Any CPU
+ {20376E28-68EB-4BE5-81A5-51500F1235E2}.MinSizeRel|Any CPU.ActiveCfg = Debug|Any CPU
+ {20376E28-68EB-4BE5-81A5-51500F1235E2}.MinSizeRel|Any CPU.Build.0 = Debug|Any CPU
+ {20376E28-68EB-4BE5-81A5-51500F1235E2}.MinSizeRel|x64.ActiveCfg = Debug|Any CPU
+ {20376E28-68EB-4BE5-81A5-51500F1235E2}.MinSizeRel|x64.Build.0 = Debug|Any CPU
+ {20376E28-68EB-4BE5-81A5-51500F1235E2}.MinSizeRel|x86.ActiveCfg = Debug|Any CPU
+ {20376E28-68EB-4BE5-81A5-51500F1235E2}.MinSizeRel|x86.Build.0 = Debug|Any CPU
+ {20376E28-68EB-4BE5-81A5-51500F1235E2}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {20376E28-68EB-4BE5-81A5-51500F1235E2}.Release|Any CPU.Build.0 = Release|Any CPU
+ {20376E28-68EB-4BE5-81A5-51500F1235E2}.Release|x64.ActiveCfg = Release|Any CPU
+ {20376E28-68EB-4BE5-81A5-51500F1235E2}.Release|x64.Build.0 = Release|Any CPU
+ {20376E28-68EB-4BE5-81A5-51500F1235E2}.Release|x86.ActiveCfg = Release|Any CPU
+ {20376E28-68EB-4BE5-81A5-51500F1235E2}.Release|x86.Build.0 = Release|Any CPU
+ {20376E28-68EB-4BE5-81A5-51500F1235E2}.RelWithDebInfo|Any CPU.ActiveCfg = Release|Any CPU
+ {20376E28-68EB-4BE5-81A5-51500F1235E2}.RelWithDebInfo|Any CPU.Build.0 = Release|Any CPU
+ {20376E28-68EB-4BE5-81A5-51500F1235E2}.RelWithDebInfo|x64.ActiveCfg = Release|Any CPU
+ {20376E28-68EB-4BE5-81A5-51500F1235E2}.RelWithDebInfo|x64.Build.0 = Release|Any CPU
+ {20376E28-68EB-4BE5-81A5-51500F1235E2}.RelWithDebInfo|x86.ActiveCfg = Release|Any CPU
+ {20376E28-68EB-4BE5-81A5-51500F1235E2}.RelWithDebInfo|x86.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
@@ -1591,23 +1690,21 @@ Global
{736BF068-7389-41B9-BF63-D4E49B9BC833} = {1AB5B24B-B317-4142-A5D1-A6E84F15BA34}
{48408A19-CCC5-4C85-990B-0A9F827BF29A} = {1AB5B24B-B317-4142-A5D1-A6E84F15BA34}
{8FB83810-5A4C-4097-9A79-8E687E4981CB} = {1AB5B24B-B317-4142-A5D1-A6E84F15BA34}
- {F0CB08B6-2809-4D37-B1DD-A9B7F1B0D95D} = {ED2FE3E2-F7E7-4389-8231-B65123F2076F}
{203F0362-DAFC-4679-A01E-7FBC331D8647} = {ED2FE3E2-F7E7-4389-8231-B65123F2076F}
{F8C66E8A-FC59-40B3-AC0F-58CA22526F76} = {ED2FE3E2-F7E7-4389-8231-B65123F2076F}
{73ACEB34-D22C-43EA-87BE-EFC0E83D0126} = {ED2FE3E2-F7E7-4389-8231-B65123F2076F}
{ABB81DAE-0D26-483C-BE3B-0F9ACD812A62} = {ED2FE3E2-F7E7-4389-8231-B65123F2076F}
{570950AD-A080-4F32-980C-F50E312910DF} = {ED2FE3E2-F7E7-4389-8231-B65123F2076F}
- {6592A22C-2386-4E83-A4D3-FC08075C723A} = {ED2FE3E2-F7E7-4389-8231-B65123F2076F}
{098D9321-1201-4974-A75E-F58EBCD98ACF} = {ED2FE3E2-F7E7-4389-8231-B65123F2076F}
{D82A3246-9831-4024-A9B2-1932EEF3D56F} = {ED2FE3E2-F7E7-4389-8231-B65123F2076F}
{BE4C655A-DC54-4408-B739-743456D34111} = {ED2FE3E2-F7E7-4389-8231-B65123F2076F}
- {2DFCC95F-75F7-46E1-8F56-256DB4CA98B2} = {0722D325-24C8-4E83-B5AF-0A083E7F0749}
{3E28672F-F4E4-44D5-AEFB-1F425DECC57E} = {17735A9D-BFD9-4585-A7CB-3208CA6EA8A7}
{A5CA696F-585E-40AB-912C-6316BC330C5E} = {17735A9D-BFD9-4585-A7CB-3208CA6EA8A7}
{4EF497BF-D717-4E03-90B1-932C7F51B918} = {17735A9D-BFD9-4585-A7CB-3208CA6EA8A7}
{18B43540-346F-4AFF-8868-A82CF098FAFD} = {17735A9D-BFD9-4585-A7CB-3208CA6EA8A7}
{C3845C85-1F59-4552-BE52-32F513CE795F} = {17735A9D-BFD9-4585-A7CB-3208CA6EA8A7}
{BBB5A4C8-CD2D-4A6A-9159-0FEAF84B745E} = {17735A9D-BFD9-4585-A7CB-3208CA6EA8A7}
+ {8AA88E83-6A98-4AD6-86EB-2ED4F6EDA17F} = {17735A9D-BFD9-4585-A7CB-3208CA6EA8A7}
{726D2CB9-80E5-4496-9C86-910AC452C45E} = {17735A9D-BFD9-4585-A7CB-3208CA6EA8A7}
{EF745C56-0350-4C42-AA22-86D592E1D8D5} = {17735A9D-BFD9-4585-A7CB-3208CA6EA8A7}
{87063BA1-454D-4433-ADF9-89C667275D62} = {17735A9D-BFD9-4585-A7CB-3208CA6EA8A7}
@@ -1623,7 +1720,6 @@ Global
{F228580D-9373-4A60-AB88-76DF58D11580} = {17735A9D-BFD9-4585-A7CB-3208CA6EA8A7}
{48E260F4-6F3F-4387-B61F-D15BABD06D9A} = {17735A9D-BFD9-4585-A7CB-3208CA6EA8A7}
{23EE9BBB-3B33-4CF2-8D1A-29A8DB12E878} = {17735A9D-BFD9-4585-A7CB-3208CA6EA8A7}
- {F5E27BA5-063B-4770-A6E8-87252E9AB22C} = {17735A9D-BFD9-4585-A7CB-3208CA6EA8A7}
{AA744891-5209-4335-8457-37EC347DF833} = {88278B81-7649-45DC-8A6A-D3A645C5AFC3}
{DA3595A8-35DE-42B9-97A4-4A2461BAD554} = {88278B81-7649-45DC-8A6A-D3A645C5AFC3}
{F2D1A7DA-B3EB-4CA7-BAA9-A18CEC398853} = {88278B81-7649-45DC-8A6A-D3A645C5AFC3}
@@ -1636,5 +1732,16 @@ Global
{3F7D56A3-A280-467E-8916-C18659C243BA} = {1AB5B24B-B317-4142-A5D1-A6E84F15BA34}
{B1AEC227-5115-44BC-92D2-B1B3545E1DDE} = {17735A9D-BFD9-4585-A7CB-3208CA6EA8A7}
{08A40B6A-F695-4EA9-AC8D-CF88FADEA796} = {17735A9D-BFD9-4585-A7CB-3208CA6EA8A7}
+ {602976C5-2477-4B4C-AD9A-1EAFB250529A} = {ED2FE3E2-F7E7-4389-8231-B65123F2076F}
+ {FCDFAF40-CC16-4D49-96C0-E49F195E7142} = {ED2FE3E2-F7E7-4389-8231-B65123F2076F}
+ {84BB2DD5-B2D8-4C85-AAF9-29D2A74FBF94} = {88278B81-7649-45DC-8A6A-D3A645C5AFC3}
+ {B4EE3671-C103-4A37-8DEB-C74E0134104E} = {17735A9D-BFD9-4585-A7CB-3208CA6EA8A7}
+ {44759218-B558-4AF0-8991-515F1100DCF5} = {17735A9D-BFD9-4585-A7CB-3208CA6EA8A7}
+ {E7C72EF2-8480-48B4-AAE8-A596F1A6048E} = {17735A9D-BFD9-4585-A7CB-3208CA6EA8A7}
+ {F0D50831-9468-4ACB-8FD8-E9883DD553FB} = {17735A9D-BFD9-4585-A7CB-3208CA6EA8A7}
+ {20376E28-68EB-4BE5-81A5-51500F1235E2} = {17735A9D-BFD9-4585-A7CB-3208CA6EA8A7}
+ EndGlobalSection
+ GlobalSection(ExtensibilityGlobals) = postSolution
+ SolutionGuid = {B526D2CE-EE2D-4AD4-93EF-1867D90FF1F5}
EndGlobalSection
EndGlobal
diff --git a/README.md b/README.md
index e6d7174b4..7be34c7be 100644
--- a/README.md
+++ b/README.md
@@ -7,14 +7,14 @@ This repo contains the source code for cross-platform [.NET Core](http://github.
Looking for V1 of the .NET Core tooling?
----------------------------------------
-If you are looking for the v1.0.1 release of the .NET Core tools (CLI, MSBuild and the new csproj), see https://dot.net/core.
+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/15.5 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
+> **Note:** the master branch of the CLI repo is based on post-v2.0 of .NET Core and is considered pre-release. For production-level usage, use the
+> v2.0 of the tools.
Found an issue?
---------------
-You can consult the [Documents Index](Documentation/README.md) to find out the current issues and to see the workarounds.
+You can consult the [Documents Index](Documentation/README.md) to find out the current issues and to see the workarounds.
If you don't find your issue, please file one! However, given that this is a very high-frequency repo, we've setup some [basic guidelines](Documentation/project-docs/issue-filing-guide.md) to help you. Please consult those first.
@@ -23,36 +23,27 @@ This project has adopted the code of conduct defined by the [Contributor Covenan
Build Status
------------
-|Windows x64 |Windows x86 |Mac OS X |Linux x64 |Ubuntu 14.04 / Linux Mint 17 |Ubuntu 16.04 |Ubuntu 16.10 |Debian 8 |RHEL 7.2 |
-|:------:|:------:|:------:|:------:|:------:|:------:|:------:|:------:|:------:|
-|[![][win-x64-build-badge]][win-x64-build]|[![][win-x86-build-badge]][win-x86-build]|[![][osx-build-badge]][osx-build]|[![][linux-build-badge]][linux-build]|[![][ubuntu-14.04-build-badge]][ubuntu-14.04-build]|[![][ubuntu-16.04-build-badge]][ubuntu-16.04-build]|[![][ubuntu-16.10-build-badge]][ubuntu-16.10-build]|[![][debian-8-build-badge]][debian-8-build]|[![][rhel-build-badge]][rhel-build]|
+|Windows x64 |Windows x86 |macOS |Linux x64 |Linux Native Installers |RHEL 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]|
-[win-x64-build-badge]: https://devdiv.visualstudio.com/_apis/public/build/definitions/0bdbc590-a062-4c3f-b0f6-9383f67865ee/6786/badge
-[win-x64-build]: https://devdiv.visualstudio.com/DevDiv/_build?_a=completed&definitionId=6786
+[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
-[win-x86-build-badge]: https://devdiv.visualstudio.com/_apis/public/build/definitions/0bdbc590-a062-4c3f-b0f6-9383f67865ee/6787/badge
-[win-x86-build]: https://devdiv.visualstudio.com/DevDiv/_build?_a=completed&definitionId=6787
+[win-x86-build-badge]: https://devdiv.visualstudio.com/_apis/public/build/definitions/0bdbc590-a062-4c3f-b0f6-9383f67865ee/6901/badge
+[win-x86-build]: https://devdiv.visualstudio.com/DevDiv/_build?_a=completed&definitionId=6901
-[osx-build-badge]: https://devdiv.visualstudio.com/_apis/public/build/definitions/0bdbc590-a062-4c3f-b0f6-9383f67865ee/6781/badge
-[osx-build]: https://devdiv.visualstudio.com/DevDiv/_build?_a=completed&definitionId=6781
+[osx-build-badge]: https://devdiv.visualstudio.com/_apis/public/build/definitions/0bdbc590-a062-4c3f-b0f6-9383f67865ee/6900/badge
+[osx-build]: https://devdiv.visualstudio.com/DevDiv/_build?_a=completed&definitionId=6900
-[linux-build-badge]: https://devdiv.visualstudio.com/_apis/public/build/definitions/0bdbc590-a062-4c3f-b0f6-9383f67865ee/6780/badge
-[linux-build]: https://devdiv.visualstudio.com/DevDiv/_build?_a=completed&definitionId=6780
+[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
-[ubuntu-14.04-build-badge]: https://devdiv.visualstudio.com/_apis/public/build/definitions/0bdbc590-a062-4c3f-b0f6-9383f67865ee/6783/badge
-[ubuntu-14.04-build]: https://devdiv.visualstudio.com/DevDiv/_build?_a=completed&definitionId=6783
+[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
-[ubuntu-16.04-build-badge]: https://devdiv.visualstudio.com/_apis/public/build/definitions/0bdbc590-a062-4c3f-b0f6-9383f67865ee/6784/badge
-[ubuntu-16.04-build]: https://devdiv.visualstudio.com/DevDiv/_build?_a=completed&definitionId=6784
-
-[ubuntu-16.10-build-badge]: https://devdiv.visualstudio.com/_apis/public/build/definitions/0bdbc590-a062-4c3f-b0f6-9383f67865ee/6785/badge
-[ubuntu-16.10-build]: https://devdiv.visualstudio.com/DevDiv/_build?_a=completed&definitionId=6785
-
-[debian-8-build-badge]: https://devdiv.visualstudio.com/_apis/public/build/definitions/0bdbc590-a062-4c3f-b0f6-9383f67865ee/6778/badge
-[debian-8-build]: https://devdiv.visualstudio.com/DevDiv/_build?_a=completed&definitionId=6778
-
-[rhel-build-badge]: https://devdiv.visualstudio.com/_apis/public/build/definitions/0bdbc590-a062-4c3f-b0f6-9383f67865ee/6782/badge
-[rhel-build]: https://devdiv.visualstudio.com/DevDiv/_build?_a=completed&definitionId=6782
+[rhel6-build-badge]: https://devdiv.visualstudio.com/_apis/public/build/definitions/0bdbc590-a062-4c3f-b0f6-9383f67865ee/7392/badge
+[rhel6-build]: https://devdiv.visualstudio.com/DevDiv/_build?_a=completed&definitionId=7392
Installers and Binaries
-----------------------
@@ -63,24 +54,21 @@ To download the .NET Core runtime **without** the SDK, visit https://github.com/
> **Note:** Be aware that the following installers are the **latest bits**. If you
> 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/15.5* [![][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] |
-| **Mac OS X** | [Installer][osx-installer] - [Checksum][osx-installer-checksum] [tar.gz][osx-targz] - [Checksum][osx-targz-checksum] |
+| **macOS** | [Installer][osx-installer] - [Checksum][osx-installer-checksum] [tar.gz][osx-targz] - [Checksum][osx-targz-checksum] |
| **Linux x64** | [tar.gz][linux-targz] - [Checksum][linux-targz-checksum] |
| **Ubuntu 14.04 / Linux Mint 17** | [Installer][ubuntu-14.04-installer] - [Checksum][ubuntu-14.04-installer-checksum] _see installer note below_1 tar.gz - See **Linux x64** |
| **Ubuntu 16.04** | [Installer][ubuntu-16.04-installer] - [Checksum][ubuntu-16.04-installer-checksum] _see installer note below_1 tar.gz - See **Linux x64** |
-| **Ubuntu 16.10** | [Installer][ubuntu-16.10-installer] - [Checksum][ubuntu-16.10-installer-checksum] _see installer note below_1 tar.gz - See **Linux x64** |
| **Debian 8** | [Installer][debian-8-installer] - [Checksum][debian-8-installer-checksum] _see installer note below_1 tar.gz - See **Linux x64** |
| **RHEL 7.2** | [Installer][rhel-7-installer] - [Checksum][rhel-7-installer-checksum] _see installer note below_1 tar.gz - See **Linux x64** |
-| **CentOS 7.1 / Oracle Linux 7** | tar.gz - See **Linux x64** |
-| **Fedora 24** | tar.gz - See **Linux x64** |
-| **OpenSUSE 42.1** | tar.gz - See **Linux x64** |
+| **RHEL 6** | [tar.gz][rhel-6-targz] - [Checksum][rhel-6-targz-checksum] |
-
-| Latest Coherent Build2 *release/15.5* |
+| Latest Coherent Build2 *master* |
|:------:|
| [![][coherent-version-badge]][coherent-version] |
@@ -88,44 +76,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/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]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/15.5/latest.version
-[version-badge]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/15.5/win_x64_Release_version_badge.svg
-[coherent-version]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/15.5/latest.coherent.version
-[coherent-version-badge]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/15.5/win_x86_Release_coherent_badge.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
-[win-x64-installer]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/15.5/dotnet-sdk-latest-win-x64.exe
-[win-x64-installer-checksum]: https://dotnetclichecksums.blob.core.windows.net/dotnet/Sdk/release/15.5/dotnet-sdk-latest-win-x64.exe.sha
-[win-x64-zip]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/15.5/dotnet-sdk-latest-win-x64.zip
-[win-x64-zip-checksum]: https://dotnetclichecksums.blob.core.windows.net/dotnet/Sdk/release/15.5/dotnet-sdk-latest-win-x64.zip.sha
+[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-x86-installer]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/15.5/dotnet-sdk-latest-win-x86.exe
-[win-x86-installer-checksum]: https://dotnetclichecksums.blob.core.windows.net/dotnet/Sdk/release/15.5/dotnet-sdk-latest-win-x86.exe.sha
-[win-x86-zip]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/15.5/dotnet-sdk-latest-win-x86.zip
-[win-x86-zip-checksum]: https://dotnetclichecksums.blob.core.windows.net/dotnet/Sdk/release/15.5/dotnet-sdk-latest-win-x86.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
-[osx-installer]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/15.5/dotnet-sdk-latest-osx-x64.pkg
-[osx-installer-checksum]: https://dotnetclichecksums.blob.core.windows.net/dotnet/Sdk/release/15.5/dotnet-sdk-latest-osx-x64.pkg.sha
-[osx-targz]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/15.5/dotnet-sdk-latest-osx-x64.tar.gz
-[osx-targz-checksum]: https://dotnetclichecksums.blob.core.windows.net/dotnet/Sdk/release/15.5/dotnet-sdk-latest-osx-x64.tar.gz.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
-[linux-targz]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/15.5/dotnet-sdk-latest-linux-x64.tar.gz
-[linux-targz-checksum]: https://dotnetclichecksums.blob.core.windows.net/dotnet/Sdk/release/15.5/dotnet-sdk-latest-linux-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
-[ubuntu-14.04-installer]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/15.5/dotnet-sdk-latest-ubuntu-x64.deb
-[ubuntu-14.04-installer-checksum]: https://dotnetclichecksums.blob.core.windows.net/dotnet/Sdk/release/15.5/dotnet-sdk-latest-ubuntu-x64.deb.sha
+[ubuntu-14.04-installer]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/master/dotnet-sdk-latest-ubuntu-x64.deb
+[ubuntu-14.04-installer-checksum]: https://dotnetclichecksums.blob.core.windows.net/dotnet/Sdk/master/dotnet-sdk-latest-ubuntu-x64.deb.sha
-[ubuntu-16.04-installer]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/15.5/dotnet-sdk-latest-ubuntu.16.04-x64.deb
-[ubuntu-16.04-installer-checksum]: https://dotnetclichecksums.blob.core.windows.net/dotnet/Sdk/release/15.5/dotnet-sdk-latest-ubuntu.16.04-x64.deb.sha
+[ubuntu-16.04-installer]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/master/dotnet-sdk-latest-ubuntu.16.04-x64.deb
+[ubuntu-16.04-installer-checksum]: https://dotnetclichecksums.blob.core.windows.net/dotnet/Sdk/master/dotnet-sdk-latest-ubuntu.16.04-x64.deb.sha
-[ubuntu-16.10-installer]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/15.5/dotnet-sdk-latest-ubuntu.16.10-x64.deb
-[ubuntu-16.10-installer-checksum]: https://dotnetclichecksums.blob.core.windows.net/dotnet/Sdk/release/15.5/dotnet-sdk-latest-ubuntu.16.10-x64.deb.sha
+[debian-8-installer]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/master/dotnet-sdk-latest-debian-x64.deb
+[debian-8-installer-checksum]: https://dotnetclichecksums.blob.core.windows.net/dotnet/Sdk/master/dotnet-sdk-latest-debian-x64.deb.sha
-[debian-8-installer]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/15.5/dotnet-sdk-latest-debian-x64.deb
-[debian-8-installer-checksum]: https://dotnetclichecksums.blob.core.windows.net/dotnet/Sdk/release/15.5/dotnet-sdk-latest-debian-x64.deb.sha
+[rhel-7-installer]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/master/dotnet-sdk-latest-rhel-x64.rpm
+[rhel-7-installer-checksum]: https://dotnetclichecksums.blob.core.windows.net/dotnet/Sdk/master/dotnet-sdk-latest-rhel-x64.rpm.sha
-[rhel-7-installer]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/15.5/dotnet-sdk-latest-rhel-x64.rpm
-[rhel-7-installer-checksum]: https://dotnetclichecksums.blob.core.windows.net/dotnet/Sdk/release/15.5/dotnet-sdk-latest-rhel-x64.rpm.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
# Debian daily feed
@@ -152,15 +140,6 @@ sudo apt-key adv --keyserver apt-mo.trafficmanager.net --recv-keys 417A0893
sudo apt-get update
```
-Ubuntu 16.10
-```
-sudo sh -c 'echo "deb [arch=amd64] http://apt-mo.trafficmanager.net/repos/dotnet/ yakkety main" > /etc/apt/sources.list.d/dotnetdev.list'
-
-sudo apt-key adv --keyserver apt-mo.trafficmanager.net --recv-keys 417A0893
-
-sudo apt-get update
-```
-
Debian 8
```
sudo sh -c 'echo "deb [arch=amd64] http://apt-mo.trafficmanager.net/repos/dotnet/ jessie main" > /etc/apt/sources.list.d/dotnetdev.list'
diff --git a/TestAssets/DesktopTestProjects/AppWithProjTool2Fx/App.csproj b/TestAssets/DesktopTestProjects/AppWithProjTool2Fx/App.csproj
index f72d85fc6..331a6e75f 100644
--- a/TestAssets/DesktopTestProjects/AppWithProjTool2Fx/App.csproj
+++ b/TestAssets/DesktopTestProjects/AppWithProjTool2Fx/App.csproj
@@ -2,10 +2,11 @@
- netcoreapp2.0;net451
+ netcoreapp2.1;net451Exe
- $(AssetTargetFallback);portable-net45+win8;dnxcore50
+ $(AssetTargetFallback);portable-net45+win8;dnxcore50win7-x64;win7-x86;osx.10.10-x64;osx.10.11-x64;ubuntu.14.04-x64;ubuntu.16.04-x64;ubuntu.16.10-x64;centos.7-x64;rhel.7.2-x64;debian.8-x64;fedora.24-x64;opensuse.42.1-x64
+ $(TEST_PACKAGES)
diff --git a/TestAssets/DesktopTestProjects/AppWithProjTool2Fx/NuGet.Config b/TestAssets/DesktopTestProjects/AppWithProjTool2Fx/NuGet.Config
deleted file mode 100644
index b8e876fcb..000000000
--- a/TestAssets/DesktopTestProjects/AppWithProjTool2Fx/NuGet.Config
+++ /dev/null
@@ -1,6 +0,0 @@
-
-
-
-
-
-
diff --git a/TestAssets/DesktopTestProjects/BindingRedirectSample/AppWithRedirectsAndConfig/AppWithRedirectsAndConfig.csproj b/TestAssets/DesktopTestProjects/BindingRedirectSample/AppWithRedirectsAndConfig/AppWithRedirectsAndConfig.csproj
index 82a5ad25d..287b089bb 100644
--- a/TestAssets/DesktopTestProjects/BindingRedirectSample/AppWithRedirectsAndConfig/AppWithRedirectsAndConfig.csproj
+++ b/TestAssets/DesktopTestProjects/BindingRedirectSample/AppWithRedirectsAndConfig/AppWithRedirectsAndConfig.csproj
@@ -4,6 +4,7 @@
AppWithRedirectsAndConfigExewin7-x64;win7-x86
+ $(TEST_PACKAGES)
diff --git a/TestAssets/DesktopTestProjects/BindingRedirectSample/AppWithRedirectsNoConfig/AppWithRedirectsNoConfig.csproj b/TestAssets/DesktopTestProjects/BindingRedirectSample/AppWithRedirectsNoConfig/AppWithRedirectsNoConfig.csproj
index 94b99d56b..8e5fc172e 100644
--- a/TestAssets/DesktopTestProjects/BindingRedirectSample/AppWithRedirectsNoConfig/AppWithRedirectsNoConfig.csproj
+++ b/TestAssets/DesktopTestProjects/BindingRedirectSample/AppWithRedirectsNoConfig/AppWithRedirectsNoConfig.csproj
@@ -4,6 +4,7 @@
AppWithRedirectsNoConfigExewin7-x64;win7-x86
+ $(TEST_PACKAGES)
diff --git a/TestAssets/DesktopTestProjects/BindingRedirectSample/NuGet.Config b/TestAssets/DesktopTestProjects/BindingRedirectSample/NuGet.Config
deleted file mode 100644
index b8e876fcb..000000000
--- a/TestAssets/DesktopTestProjects/BindingRedirectSample/NuGet.Config
+++ /dev/null
@@ -1,6 +0,0 @@
-
-
-
-
-
-
diff --git a/TestAssets/DesktopTestProjects/LibWithProjTool2Fx/Lib.csproj b/TestAssets/DesktopTestProjects/LibWithProjTool2Fx/Lib.csproj
index d57f09629..81bd8b767 100644
--- a/TestAssets/DesktopTestProjects/LibWithProjTool2Fx/Lib.csproj
+++ b/TestAssets/DesktopTestProjects/LibWithProjTool2Fx/Lib.csproj
@@ -2,7 +2,8 @@
netstandard1.6;net451Library
- $(AssetTargetFallback);portable-net45+win8;dnxcore50;netcoreapp2.0
+ $(AssetTargetFallback);portable-net45+win8;dnxcore50;netcoreapp2.1
+ $(TEST_PACKAGES)
diff --git a/TestAssets/DesktopTestProjects/LibWithProjTool2Fx/NuGet.Config b/TestAssets/DesktopTestProjects/LibWithProjTool2Fx/NuGet.Config
deleted file mode 100644
index b8e876fcb..000000000
--- a/TestAssets/DesktopTestProjects/LibWithProjTool2Fx/NuGet.Config
+++ /dev/null
@@ -1,6 +0,0 @@
-
-
-
-
-
-
diff --git a/TestAssets/DesktopTestProjects/MultiTFMXunitProject/XUnitProject/XUnitProject.csproj b/TestAssets/DesktopTestProjects/MultiTFMXunitProject/XUnitProject/XUnitProject.csproj
index 2ae7ce025..e11243d4f 100644
--- a/TestAssets/DesktopTestProjects/MultiTFMXunitProject/XUnitProject/XUnitProject.csproj
+++ b/TestAssets/DesktopTestProjects/MultiTFMXunitProject/XUnitProject/XUnitProject.csproj
@@ -2,7 +2,7 @@
- net461;netcoreapp2.0
+ net461;netcoreapp2.1
diff --git a/TestAssets/DesktopTestProjects/NETFrameworkReferenceNETStandard20/MultiTFMTestApp/MultiTFMTestApp.csproj b/TestAssets/DesktopTestProjects/NETFrameworkReferenceNETStandard20/MultiTFMTestApp/MultiTFMTestApp.csproj
index cc54ec8ae..465f0e78a 100644
--- a/TestAssets/DesktopTestProjects/NETFrameworkReferenceNETStandard20/MultiTFMTestApp/MultiTFMTestApp.csproj
+++ b/TestAssets/DesktopTestProjects/NETFrameworkReferenceNETStandard20/MultiTFMTestApp/MultiTFMTestApp.csproj
@@ -2,7 +2,7 @@
Exe
- netcoreapp2.0;net461
+ netcoreapp2.1;net461
diff --git a/TestAssets/Directory.Build.props b/TestAssets/Directory.Build.props
new file mode 100644
index 000000000..905549edc
--- /dev/null
+++ b/TestAssets/Directory.Build.props
@@ -0,0 +1,3 @@
+
+
+
diff --git a/TestAssets/NonRestoredTestProjects/AppThrowingException/AppDependingOnOtherAsTool/AppDependingOnOtherAsTool.csproj b/TestAssets/NonRestoredTestProjects/AppThrowingException/AppDependingOnOtherAsTool/AppDependingOnOtherAsTool.csproj
index 30c6823e7..72070fa83 100644
--- a/TestAssets/NonRestoredTestProjects/AppThrowingException/AppDependingOnOtherAsTool/AppDependingOnOtherAsTool.csproj
+++ b/TestAssets/NonRestoredTestProjects/AppThrowingException/AppDependingOnOtherAsTool/AppDependingOnOtherAsTool.csproj
@@ -3,7 +3,7 @@
Exe
- netcoreapp2.0
+ netcoreapp2.1
diff --git a/TestAssets/NonRestoredTestProjects/AppWithNonExistingToolDependency/AppWithNonExistingToolDependency.csproj b/TestAssets/NonRestoredTestProjects/AppWithNonExistingToolDependency/AppWithNonExistingToolDependency.csproj
index db9d6f117..6edffa788 100644
--- a/TestAssets/NonRestoredTestProjects/AppWithNonExistingToolDependency/AppWithNonExistingToolDependency.csproj
+++ b/TestAssets/NonRestoredTestProjects/AppWithNonExistingToolDependency/AppWithNonExistingToolDependency.csproj
@@ -3,7 +3,7 @@
Exe
- netcoreapp2.0
+ netcoreapp2.1
diff --git a/TestAssets/NonRestoredTestProjects/DotnetAddP2PProjects/Broken/Broken.csproj b/TestAssets/NonRestoredTestProjects/DotnetAddP2PProjects/Broken/Broken.csproj
index 1a79fa49d..75167a0cf 100644
--- a/TestAssets/NonRestoredTestProjects/DotnetAddP2PProjects/Broken/Broken.csproj
+++ b/TestAssets/NonRestoredTestProjects/DotnetAddP2PProjects/Broken/Broken.csproj
@@ -1,7 +1,7 @@
Library
- net451;netcoreapp2.0
+ net451;netcoreapp2.1
diff --git a/TestAssets/NonRestoredTestProjects/DotnetAddP2PProjects/EmptyItemGroup/EmptyItemGroup.csproj b/TestAssets/NonRestoredTestProjects/DotnetAddP2PProjects/EmptyItemGroup/EmptyItemGroup.csproj
index 0bdb79506..930f5ff99 100644
--- a/TestAssets/NonRestoredTestProjects/DotnetAddP2PProjects/EmptyItemGroup/EmptyItemGroup.csproj
+++ b/TestAssets/NonRestoredTestProjects/DotnetAddP2PProjects/EmptyItemGroup/EmptyItemGroup.csproj
@@ -3,10 +3,10 @@
Library
- net451;netcoreapp2.0
+ net451;netcoreapp2.1
-
+
diff --git a/TestAssets/NonRestoredTestProjects/DotnetAddP2PProjects/Lib/Lib.csproj b/TestAssets/NonRestoredTestProjects/DotnetAddP2PProjects/Lib/Lib.csproj
index 1be153a79..764ed0f1e 100644
--- a/TestAssets/NonRestoredTestProjects/DotnetAddP2PProjects/Lib/Lib.csproj
+++ b/TestAssets/NonRestoredTestProjects/DotnetAddP2PProjects/Lib/Lib.csproj
@@ -3,10 +3,10 @@
Library
- net451;netcoreapp2.0;netstandard1.4
+ net451;netcoreapp2.1;netstandard1.4
-
+
diff --git a/TestAssets/NonRestoredTestProjects/DotnetAddP2PProjects/MoreThanOne/a.csproj b/TestAssets/NonRestoredTestProjects/DotnetAddP2PProjects/MoreThanOne/a.csproj
index 68b8ed617..527b9151c 100644
--- a/TestAssets/NonRestoredTestProjects/DotnetAddP2PProjects/MoreThanOne/a.csproj
+++ b/TestAssets/NonRestoredTestProjects/DotnetAddP2PProjects/MoreThanOne/a.csproj
@@ -3,7 +3,7 @@
Library
- netcoreapp2.0
+ netcoreapp2.1
diff --git a/TestAssets/NonRestoredTestProjects/DotnetAddP2PProjects/MoreThanOne/b.csproj b/TestAssets/NonRestoredTestProjects/DotnetAddP2PProjects/MoreThanOne/b.csproj
index 68b8ed617..527b9151c 100644
--- a/TestAssets/NonRestoredTestProjects/DotnetAddP2PProjects/MoreThanOne/b.csproj
+++ b/TestAssets/NonRestoredTestProjects/DotnetAddP2PProjects/MoreThanOne/b.csproj
@@ -3,7 +3,7 @@
Library
- netcoreapp2.0
+ netcoreapp2.1
diff --git a/TestAssets/NonRestoredTestProjects/DotnetAddP2PProjects/Net452AndNetCoreApp10Lib/Net452AndNetCoreApp10Lib.csproj b/TestAssets/NonRestoredTestProjects/DotnetAddP2PProjects/Net452AndNetCoreApp10Lib/Net452AndNetCoreApp10Lib.csproj
index e11e31084..799473702 100644
--- a/TestAssets/NonRestoredTestProjects/DotnetAddP2PProjects/Net452AndNetCoreApp10Lib/Net452AndNetCoreApp10Lib.csproj
+++ b/TestAssets/NonRestoredTestProjects/DotnetAddP2PProjects/Net452AndNetCoreApp10Lib/Net452AndNetCoreApp10Lib.csproj
@@ -3,9 +3,9 @@
Library
- net452;netcoreapp2.0
+ net452;netcoreapp2.1
-
+
diff --git a/TestAssets/NonRestoredTestProjects/DotnetAddP2PProjects/ValidRef/ValidRef.csproj b/TestAssets/NonRestoredTestProjects/DotnetAddP2PProjects/ValidRef/ValidRef.csproj
index 0fc35d3d8..6ec6e04f2 100644
--- a/TestAssets/NonRestoredTestProjects/DotnetAddP2PProjects/ValidRef/ValidRef.csproj
+++ b/TestAssets/NonRestoredTestProjects/DotnetAddP2PProjects/ValidRef/ValidRef.csproj
@@ -5,7 +5,7 @@
Librarynet451;netcoreapp1.0;netstandard1.4
-
+
diff --git a/TestAssets/NonRestoredTestProjects/DotnetAddP2PProjects/WithDoubledRef/WithDoubledRef.csproj b/TestAssets/NonRestoredTestProjects/DotnetAddP2PProjects/WithDoubledRef/WithDoubledRef.csproj
index f33aa7821..8fb413a56 100644
--- a/TestAssets/NonRestoredTestProjects/DotnetAddP2PProjects/WithDoubledRef/WithDoubledRef.csproj
+++ b/TestAssets/NonRestoredTestProjects/DotnetAddP2PProjects/WithDoubledRef/WithDoubledRef.csproj
@@ -5,7 +5,7 @@
Librarynet451;netcoreapp1.0
-
+
diff --git a/TestAssets/NonRestoredTestProjects/DotnetAddP2PProjects/WithExistingRefCondOnItem/WithExistingRefCondOnItem.csproj b/TestAssets/NonRestoredTestProjects/DotnetAddP2PProjects/WithExistingRefCondOnItem/WithExistingRefCondOnItem.csproj
index 8747ed6b7..b16235d3b 100644
--- a/TestAssets/NonRestoredTestProjects/DotnetAddP2PProjects/WithExistingRefCondOnItem/WithExistingRefCondOnItem.csproj
+++ b/TestAssets/NonRestoredTestProjects/DotnetAddP2PProjects/WithExistingRefCondOnItem/WithExistingRefCondOnItem.csproj
@@ -5,7 +5,7 @@
Librarynet451;netcoreapp1.0
-
+
diff --git a/TestAssets/NonRestoredTestProjects/DotnetAddP2PProjects/WithExistingRefCondWhitespaces/WithExistingRefCondWhitespaces.csproj b/TestAssets/NonRestoredTestProjects/DotnetAddP2PProjects/WithExistingRefCondWhitespaces/WithExistingRefCondWhitespaces.csproj
index 0b2792110..a552074b8 100644
--- a/TestAssets/NonRestoredTestProjects/DotnetAddP2PProjects/WithExistingRefCondWhitespaces/WithExistingRefCondWhitespaces.csproj
+++ b/TestAssets/NonRestoredTestProjects/DotnetAddP2PProjects/WithExistingRefCondWhitespaces/WithExistingRefCondWhitespaces.csproj
@@ -5,7 +5,7 @@
Librarynet451;netcoreapp1.0
-
+
diff --git a/TestAssets/NonRestoredTestProjects/DotnetAddP2PProjects/WithRefNoCondNonUniform/WithRefNoCondNonUniform.csproj b/TestAssets/NonRestoredTestProjects/DotnetAddP2PProjects/WithRefNoCondNonUniform/WithRefNoCondNonUniform.csproj
index 328fc5fb1..8c75a39c3 100644
--- a/TestAssets/NonRestoredTestProjects/DotnetAddP2PProjects/WithRefNoCondNonUniform/WithRefNoCondNonUniform.csproj
+++ b/TestAssets/NonRestoredTestProjects/DotnetAddP2PProjects/WithRefNoCondNonUniform/WithRefNoCondNonUniform.csproj
@@ -5,7 +5,7 @@
Librarynet451;netcoreapp1.0
-
+
diff --git a/TestAssets/NonRestoredTestProjects/PJHalfMigrated/src/ProjectA/ProjectA.csproj b/TestAssets/NonRestoredTestProjects/PJHalfMigrated/src/ProjectA/ProjectA.csproj
index 915cb3e07..165e565c0 100755
--- a/TestAssets/NonRestoredTestProjects/PJHalfMigrated/src/ProjectA/ProjectA.csproj
+++ b/TestAssets/NonRestoredTestProjects/PJHalfMigrated/src/ProjectA/ProjectA.csproj
@@ -1,7 +1,7 @@
- netcoreapp2.0
+ netcoreapp2.1portableProjectAExe
diff --git a/TestAssets/NonRestoredTestProjects/TestProjectWithUnresolvedPlatformDependency/TestProjectWithUnresolvedPlatformDependency.csproj b/TestAssets/NonRestoredTestProjects/TestProjectWithUnresolvedPlatformDependency/TestProjectWithUnresolvedPlatformDependency.csproj
index 261918eb3..b93e3b384 100755
--- a/TestAssets/NonRestoredTestProjects/TestProjectWithUnresolvedPlatformDependency/TestProjectWithUnresolvedPlatformDependency.csproj
+++ b/TestAssets/NonRestoredTestProjects/TestProjectWithUnresolvedPlatformDependency/TestProjectWithUnresolvedPlatformDependency.csproj
@@ -1,8 +1,8 @@
- netcoreapp2.0
+ netcoreapp2.1Exe
- $(AssetTargetFallback);dnxcore50
+ $(AssetTargetFallback);dnxcore50
diff --git a/TestAssets/NonRestoredTestProjects/ToolWithRandomPackageName/AppWithDepOnTool/AppWithDepOnTool.csproj b/TestAssets/NonRestoredTestProjects/ToolWithRandomPackageName/AppWithDepOnTool/AppWithDepOnTool.csproj
index f5ab2f51a..366b7f409 100644
--- a/TestAssets/NonRestoredTestProjects/ToolWithRandomPackageName/AppWithDepOnTool/AppWithDepOnTool.csproj
+++ b/TestAssets/NonRestoredTestProjects/ToolWithRandomPackageName/AppWithDepOnTool/AppWithDepOnTool.csproj
@@ -3,7 +3,7 @@
Exe
- netcoreapp2.0
+ netcoreapp2.1random-name
diff --git a/TestAssets/NonRestoredTestProjects/ToolWithRandomPackageName/ToolWithRandomPackageName/ToolWithRandomPackageName.csproj b/TestAssets/NonRestoredTestProjects/ToolWithRandomPackageName/ToolWithRandomPackageName/ToolWithRandomPackageName.csproj
index 9184414e8..145d47d10 100644
--- a/TestAssets/NonRestoredTestProjects/ToolWithRandomPackageName/ToolWithRandomPackageName/ToolWithRandomPackageName.csproj
+++ b/TestAssets/NonRestoredTestProjects/ToolWithRandomPackageName/ToolWithRandomPackageName/ToolWithRandomPackageName.csproj
@@ -3,7 +3,7 @@
Exe
- netcoreapp2.0
+ netcoreapp2.1random-name$(GeneratedPackageId)dotnet-randompackage
diff --git a/TestAssets/TestPackages/NuGet.Config b/TestAssets/TestPackages/NuGet.Config
deleted file mode 100644
index 0750578cb..000000000
--- a/TestAssets/TestPackages/NuGet.Config
+++ /dev/null
@@ -1,6 +0,0 @@
-
-
-
-
-
-
diff --git a/TestAssets/TestPackages/ToolWithOutputName/ToolWithOutputName.csproj b/TestAssets/TestPackages/ToolWithOutputName/ToolWithOutputName.csproj
index 6c57ebe5d..c237cd483 100644
--- a/TestAssets/TestPackages/ToolWithOutputName/ToolWithOutputName.csproj
+++ b/TestAssets/TestPackages/ToolWithOutputName/ToolWithOutputName.csproj
@@ -2,7 +2,7 @@
- netcoreapp2.0
+ netcoreapp2.1dotnet-tool-with-output-nameToolWithOutputNameExe
diff --git a/TestAssets/TestPackages/dotnet-dependency-context-test/dotnet-dependency-context-test.csproj b/TestAssets/TestPackages/dotnet-dependency-context-test/dotnet-dependency-context-test.csproj
index 97e20d00d..57417fb03 100644
--- a/TestAssets/TestPackages/dotnet-dependency-context-test/dotnet-dependency-context-test.csproj
+++ b/TestAssets/TestPackages/dotnet-dependency-context-test/dotnet-dependency-context-test.csproj
@@ -3,7 +3,7 @@
1.0.0-rc
- netcoreapp2.0
+ netcoreapp2.1Exe
diff --git a/TestAssets/TestPackages/dotnet-dependency-tool-invoker/dotnet-dependency-tool-invoker.csproj b/TestAssets/TestPackages/dotnet-dependency-tool-invoker/dotnet-dependency-tool-invoker.csproj
index a6c5b91c1..38e6c9213 100644
--- a/TestAssets/TestPackages/dotnet-dependency-tool-invoker/dotnet-dependency-tool-invoker.csproj
+++ b/TestAssets/TestPackages/dotnet-dependency-tool-invoker/dotnet-dependency-tool-invoker.csproj
@@ -6,7 +6,7 @@
1.0.0-rc
- netcoreapp2.0
+ netcoreapp2.1Exefalse
diff --git a/TestAssets/TestPackages/dotnet-desktop-binding-redirects/dotnet-desktop-binding-redirects.csproj b/TestAssets/TestPackages/dotnet-desktop-binding-redirects/dotnet-desktop-binding-redirects.csproj
index 4505fc5a0..f77a56e08 100644
--- a/TestAssets/TestPackages/dotnet-desktop-binding-redirects/dotnet-desktop-binding-redirects.csproj
+++ b/TestAssets/TestPackages/dotnet-desktop-binding-redirects/dotnet-desktop-binding-redirects.csproj
@@ -9,7 +9,7 @@
-
+
diff --git a/TestAssets/TestPackages/dotnet-fallbackfoldertool/dotnet-fallbackfoldertool.csproj b/TestAssets/TestPackages/dotnet-fallbackfoldertool/dotnet-fallbackfoldertool.csproj
index 35e92a2bb..9e29a16a7 100644
--- a/TestAssets/TestPackages/dotnet-fallbackfoldertool/dotnet-fallbackfoldertool.csproj
+++ b/TestAssets/TestPackages/dotnet-fallbackfoldertool/dotnet-fallbackfoldertool.csproj
@@ -2,7 +2,7 @@
- netcoreapp2.0
+ netcoreapp2.1dotnet-fallbackfoldertoolExe
diff --git a/TestAssets/TestPackages/dotnet-hello/v1/dotnet-hello/dotnet-hello.csproj b/TestAssets/TestPackages/dotnet-hello/v1/dotnet-hello/dotnet-hello.csproj
index fd5621f08..4ff2b8d00 100644
--- a/TestAssets/TestPackages/dotnet-hello/v1/dotnet-hello/dotnet-hello.csproj
+++ b/TestAssets/TestPackages/dotnet-hello/v1/dotnet-hello/dotnet-hello.csproj
@@ -5,7 +5,7 @@
1.0.0
- netcoreapp2.0
+ netcoreapp2.1dotnet-helloExewin7-x64;win7-x86;osx.10.10-x64;osx.10.11-x64;ubuntu.14.04-x64;ubuntu.16.04-x64;ubuntu.16.10-x64;centos.7-x64;rhel.7.2-x64;debian.8-x64;fedora.24-x64;opensuse.42.1-x64
diff --git a/TestAssets/TestPackages/dotnet-hello/v2/dotnet-hello/dotnet-hello.csproj b/TestAssets/TestPackages/dotnet-hello/v2/dotnet-hello/dotnet-hello.csproj
index 2391dfc1b..7e4bc54d0 100644
--- a/TestAssets/TestPackages/dotnet-hello/v2/dotnet-hello/dotnet-hello.csproj
+++ b/TestAssets/TestPackages/dotnet-hello/v2/dotnet-hello/dotnet-hello.csproj
@@ -5,7 +5,7 @@
2.0.0
- netcoreapp2.0
+ netcoreapp2.1dotnet-helloExewin7-x64;win7-x86;osx.10.10-x64;osx.10.11-x64;ubuntu.14.04-x64;ubuntu.16.04-x64;ubuntu.16.10-x64;centos.7-x64;rhel.7.2-x64;debian.8-x64;fedora.24-x64;opensuse.42.1-x64
diff --git a/TestAssets/TestPackages/dotnet-portable/dotnet-portable.csproj b/TestAssets/TestPackages/dotnet-portable/dotnet-portable.csproj
index bc2925f73..70f8b0dde 100644
--- a/TestAssets/TestPackages/dotnet-portable/dotnet-portable.csproj
+++ b/TestAssets/TestPackages/dotnet-portable/dotnet-portable.csproj
@@ -2,7 +2,7 @@
- netcoreapp2.0
+ netcoreapp2.1Exe
diff --git a/TestAssets/TestPackages/dotnet-prefercliruntime/dotnet-prefercliruntime.csproj b/TestAssets/TestPackages/dotnet-prefercliruntime/dotnet-prefercliruntime.csproj
index 21eb0a6d1..1a4ab4176 100644
--- a/TestAssets/TestPackages/dotnet-prefercliruntime/dotnet-prefercliruntime.csproj
+++ b/TestAssets/TestPackages/dotnet-prefercliruntime/dotnet-prefercliruntime.csproj
@@ -2,7 +2,7 @@
- netcoreapp2.0
+ netcoreapp2.1Exe
diff --git a/TestAssets/TestProjects/11TestAppWith10CLIToolReferences/11TestAppWith10CLIToolReferences.csproj b/TestAssets/TestProjects/11TestAppWith10CLIToolReferences/11TestAppWith10CLIToolReferences.csproj
index 6dd25f7f6..c15ae1a16 100644
--- a/TestAssets/TestProjects/11TestAppWith10CLIToolReferences/11TestAppWith10CLIToolReferences.csproj
+++ b/TestAssets/TestProjects/11TestAppWith10CLIToolReferences/11TestAppWith10CLIToolReferences.csproj
@@ -4,6 +4,7 @@
Exenetcoreapp1.1
+ $(TEST_PACKAGES)
diff --git a/TestAssets/TestProjects/11TestAppWith10CLIToolReferences/NuGet.Config b/TestAssets/TestProjects/11TestAppWith10CLIToolReferences/NuGet.Config
deleted file mode 100644
index b8e876fcb..000000000
--- a/TestAssets/TestProjects/11TestAppWith10CLIToolReferences/NuGet.Config
+++ /dev/null
@@ -1,6 +0,0 @@
-
-
-
-
-
-
diff --git a/TestAssets/TestProjects/AppWithCorruptedLaunchSettings/AppWithCorruptedLaunchSettings.csproj b/TestAssets/TestProjects/AppWithCorruptedLaunchSettings/AppWithCorruptedLaunchSettings.csproj
index 45a048433..fce4c7b68 100644
--- a/TestAssets/TestProjects/AppWithCorruptedLaunchSettings/AppWithCorruptedLaunchSettings.csproj
+++ b/TestAssets/TestProjects/AppWithCorruptedLaunchSettings/AppWithCorruptedLaunchSettings.csproj
@@ -3,7 +3,7 @@
Exe
- netcoreapp2.0
- win7-x64;win7-x86;osx.10.12-x64;ubuntu.14.04-x64;ubuntu.16.04-x64;ubuntu.16.10-x64;centos.7-x64;rhel.7-x64;debian.8-x64;fedora.24-x64;opensuse.42.1-x64
+ netcoreapp2.1
+ win7-x64;win7-x86;osx.10.12-x64;ubuntu.14.04-x64;ubuntu.16.04-x64;ubuntu.16.10-x64;rhel.6-x64;centos.7-x64;rhel.7-x64;debian.8-x64;fedora.24-x64;opensuse.42.1-x64
diff --git a/TestAssets/TestProjects/AppWithDepOnToolWithOutputName/AppWithDepOnToolWithOutputName.csproj b/TestAssets/TestProjects/AppWithDepOnToolWithOutputName/AppWithDepOnToolWithOutputName.csproj
index 9adf4c6fc..4ea5be23c 100755
--- a/TestAssets/TestProjects/AppWithDepOnToolWithOutputName/AppWithDepOnToolWithOutputName.csproj
+++ b/TestAssets/TestProjects/AppWithDepOnToolWithOutputName/AppWithDepOnToolWithOutputName.csproj
@@ -2,8 +2,9 @@
- netcoreapp2.0
+ netcoreapp2.1Exe
+ $(TEST_PACKAGES)
diff --git a/TestAssets/TestProjects/AppWithDepOnToolWithOutputName/NuGet.Config b/TestAssets/TestProjects/AppWithDepOnToolWithOutputName/NuGet.Config
deleted file mode 100644
index b8e876fcb..000000000
--- a/TestAssets/TestProjects/AppWithDepOnToolWithOutputName/NuGet.Config
+++ /dev/null
@@ -1,6 +0,0 @@
-
-
-
-
-
-
diff --git a/TestAssets/TestProjects/AppWithDirectAndToolDep/AppWithDirectAndToolDep.csproj b/TestAssets/TestProjects/AppWithDirectAndToolDep/AppWithDirectAndToolDep.csproj
index df284421b..afcfb340e 100755
--- a/TestAssets/TestProjects/AppWithDirectAndToolDep/AppWithDirectAndToolDep.csproj
+++ b/TestAssets/TestProjects/AppWithDirectAndToolDep/AppWithDirectAndToolDep.csproj
@@ -2,8 +2,9 @@
- netcoreapp2.0
+ netcoreapp2.1Exe
+ $(TEST_PACKAGES)
diff --git a/TestAssets/TestProjects/AppWithDirectAndToolDep/NuGet.Config b/TestAssets/TestProjects/AppWithDirectAndToolDep/NuGet.Config
deleted file mode 100644
index dd7ccd7af..000000000
--- a/TestAssets/TestProjects/AppWithDirectAndToolDep/NuGet.Config
+++ /dev/null
@@ -1,6 +0,0 @@
-
-
-
-
-
-
diff --git a/TestAssets/TestProjects/AppWithDirectDep/AppWithDirectDep.csproj b/TestAssets/TestProjects/AppWithDirectDep/AppWithDirectDep.csproj
index 6995199ee..5b5c0f757 100755
--- a/TestAssets/TestProjects/AppWithDirectDep/AppWithDirectDep.csproj
+++ b/TestAssets/TestProjects/AppWithDirectDep/AppWithDirectDep.csproj
@@ -3,10 +3,11 @@
1.0.0
- netcoreapp2.0
+ netcoreapp2.1AppWithDirectDepExefalse
+ $(TEST_PACKAGES)
diff --git a/TestAssets/TestProjects/AppWithDirectDep/NuGet.Config b/TestAssets/TestProjects/AppWithDirectDep/NuGet.Config
deleted file mode 100644
index dd7ccd7af..000000000
--- a/TestAssets/TestProjects/AppWithDirectDep/NuGet.Config
+++ /dev/null
@@ -1,6 +0,0 @@
-
-
-
-
-
-
diff --git a/TestAssets/TestProjects/AppWithDirectDepWithOutputName/AppWithDirectDepWithOutputName.csproj b/TestAssets/TestProjects/AppWithDirectDepWithOutputName/AppWithDirectDepWithOutputName.csproj
index 5afb24921..4eef16036 100755
--- a/TestAssets/TestProjects/AppWithDirectDepWithOutputName/AppWithDirectDepWithOutputName.csproj
+++ b/TestAssets/TestProjects/AppWithDirectDepWithOutputName/AppWithDirectDepWithOutputName.csproj
@@ -2,8 +2,9 @@
- netcoreapp2.0
+ netcoreapp2.1Exe
+ $(TEST_PACKAGES)
diff --git a/TestAssets/TestProjects/AppWithDirectDepWithOutputName/NuGet.Config b/TestAssets/TestProjects/AppWithDirectDepWithOutputName/NuGet.Config
deleted file mode 100644
index 4da396ac8..000000000
--- a/TestAssets/TestProjects/AppWithDirectDepWithOutputName/NuGet.Config
+++ /dev/null
@@ -1,8 +0,0 @@
-
-
-
-
-
-
-
-
diff --git a/TestAssets/TestProjects/AppWithFallbackFolderToolDependency/AppWithFallbackFolderToolDependency.csproj b/TestAssets/TestProjects/AppWithFallbackFolderToolDependency/AppWithFallbackFolderToolDependency.csproj
index 705cf2077..76195b1ca 100755
--- a/TestAssets/TestProjects/AppWithFallbackFolderToolDependency/AppWithFallbackFolderToolDependency.csproj
+++ b/TestAssets/TestProjects/AppWithFallbackFolderToolDependency/AppWithFallbackFolderToolDependency.csproj
@@ -2,8 +2,9 @@
- netcoreapp2.0
+ netcoreapp2.1Exe
+ $(TEST_PACKAGES)
diff --git a/TestAssets/TestProjects/AppWithFallbackFolderToolDependency/NuGet.Config b/TestAssets/TestProjects/AppWithFallbackFolderToolDependency/NuGet.Config
deleted file mode 100644
index b8e876fcb..000000000
--- a/TestAssets/TestProjects/AppWithFallbackFolderToolDependency/NuGet.Config
+++ /dev/null
@@ -1,6 +0,0 @@
-
-
-
-
-
-
diff --git a/TestAssets/TestProjects/AppWithLaunchSettings/AppWithLaunchSettings.csproj b/TestAssets/TestProjects/AppWithLaunchSettings/AppWithLaunchSettings.csproj
index 45a048433..fce4c7b68 100644
--- a/TestAssets/TestProjects/AppWithLaunchSettings/AppWithLaunchSettings.csproj
+++ b/TestAssets/TestProjects/AppWithLaunchSettings/AppWithLaunchSettings.csproj
@@ -3,7 +3,7 @@
Exe
- netcoreapp2.0
- win7-x64;win7-x86;osx.10.12-x64;ubuntu.14.04-x64;ubuntu.16.04-x64;ubuntu.16.10-x64;centos.7-x64;rhel.7-x64;debian.8-x64;fedora.24-x64;opensuse.42.1-x64
+ netcoreapp2.1
+ win7-x64;win7-x86;osx.10.12-x64;ubuntu.14.04-x64;ubuntu.16.04-x64;ubuntu.16.10-x64;rhel.6-x64;centos.7-x64;rhel.7-x64;debian.8-x64;fedora.24-x64;opensuse.42.1-x64
diff --git a/TestAssets/TestProjects/AppWithLaunchSettingsNoDefault/AppWithLaunchSettingsNoDefault.csproj b/TestAssets/TestProjects/AppWithLaunchSettingsNoDefault/AppWithLaunchSettingsNoDefault.csproj
index 45a048433..fce4c7b68 100644
--- a/TestAssets/TestProjects/AppWithLaunchSettingsNoDefault/AppWithLaunchSettingsNoDefault.csproj
+++ b/TestAssets/TestProjects/AppWithLaunchSettingsNoDefault/AppWithLaunchSettingsNoDefault.csproj
@@ -3,7 +3,7 @@
Exe
- netcoreapp2.0
- win7-x64;win7-x86;osx.10.12-x64;ubuntu.14.04-x64;ubuntu.16.04-x64;ubuntu.16.10-x64;centos.7-x64;rhel.7-x64;debian.8-x64;fedora.24-x64;opensuse.42.1-x64
+ netcoreapp2.1
+ win7-x64;win7-x86;osx.10.12-x64;ubuntu.14.04-x64;ubuntu.16.04-x64;ubuntu.16.10-x64;rhel.6-x64;centos.7-x64;rhel.7-x64;debian.8-x64;fedora.24-x64;opensuse.42.1-x64
diff --git a/TestAssets/TestProjects/AppWithMultipleFxAndTools/MSBuildAppWithMultipleFrameworksAndTools.csproj b/TestAssets/TestProjects/AppWithMultipleFxAndTools/MSBuildAppWithMultipleFrameworksAndTools.csproj
index 33cb2b5a7..abda3b8a9 100644
--- a/TestAssets/TestProjects/AppWithMultipleFxAndTools/MSBuildAppWithMultipleFrameworksAndTools.csproj
+++ b/TestAssets/TestProjects/AppWithMultipleFxAndTools/MSBuildAppWithMultipleFrameworksAndTools.csproj
@@ -3,13 +3,14 @@
Exe
- net451;netcoreapp2.0
+ net451;netcoreapp2.1
+ $(TEST_PACKAGES)
-
+
diff --git a/TestAssets/TestProjects/AppWithMultipleFxAndTools/NuGet.Config b/TestAssets/TestProjects/AppWithMultipleFxAndTools/NuGet.Config
deleted file mode 100644
index b8e876fcb..000000000
--- a/TestAssets/TestProjects/AppWithMultipleFxAndTools/NuGet.Config
+++ /dev/null
@@ -1,6 +0,0 @@
-
-
-
-
-
-
diff --git a/TestAssets/TestProjects/AppWithToolDependency/AppWithToolDependency.csproj b/TestAssets/TestProjects/AppWithToolDependency/AppWithToolDependency.csproj
index 7f9c16848..a18ee9852 100755
--- a/TestAssets/TestProjects/AppWithToolDependency/AppWithToolDependency.csproj
+++ b/TestAssets/TestProjects/AppWithToolDependency/AppWithToolDependency.csproj
@@ -2,8 +2,9 @@
- netcoreapp2.0
+ netcoreapp2.1Exe
+ $(TEST_PACKAGES)
diff --git a/TestAssets/TestProjects/AppWithToolDependency/NuGet.Config b/TestAssets/TestProjects/AppWithToolDependency/NuGet.Config
deleted file mode 100644
index b8e876fcb..000000000
--- a/TestAssets/TestProjects/AppWithToolDependency/NuGet.Config
+++ /dev/null
@@ -1,6 +0,0 @@
-
-
-
-
-
-
diff --git a/TestAssets/TestProjects/DependencyContextFromTool/DependencyContextFromTool.csproj b/TestAssets/TestProjects/DependencyContextFromTool/DependencyContextFromTool.csproj
index 9c5447b05..2de1535e2 100755
--- a/TestAssets/TestProjects/DependencyContextFromTool/DependencyContextFromTool.csproj
+++ b/TestAssets/TestProjects/DependencyContextFromTool/DependencyContextFromTool.csproj
@@ -3,11 +3,12 @@
1.0.0
- netcoreapp2.0
+ netcoreapp2.1DependencyContextFromToolExefalse$(AssetTargetFallback);dnxcore50;portable-net45+win8
+ $(TEST_PACKAGES)
diff --git a/TestAssets/TestProjects/DependencyContextFromTool/NuGet.Config b/TestAssets/TestProjects/DependencyContextFromTool/NuGet.Config
deleted file mode 100644
index b8e876fcb..000000000
--- a/TestAssets/TestProjects/DependencyContextFromTool/NuGet.Config
+++ /dev/null
@@ -1,6 +0,0 @@
-
-
-
-
-
-
diff --git a/TestAssets/TestProjects/FSharpTestAppSimple/TestAppSimple.fsproj b/TestAssets/TestProjects/FSharpTestAppSimple/TestAppSimple.fsproj
index 1af08f3b6..7c81fcb9c 100644
--- a/TestAssets/TestProjects/FSharpTestAppSimple/TestAppSimple.fsproj
+++ b/TestAssets/TestProjects/FSharpTestAppSimple/TestAppSimple.fsproj
@@ -2,7 +2,7 @@
- netcoreapp2.0
+ netcoreapp2.1Exetrue
diff --git a/TestAssets/TestProjects/MSBuildAppWithMultipleFrameworks/MSBuildAppWithMultipleFrameworks.csproj b/TestAssets/TestProjects/MSBuildAppWithMultipleFrameworks/MSBuildAppWithMultipleFrameworks.csproj
index 89aae6c65..4ef98259b 100644
--- a/TestAssets/TestProjects/MSBuildAppWithMultipleFrameworks/MSBuildAppWithMultipleFrameworks.csproj
+++ b/TestAssets/TestProjects/MSBuildAppWithMultipleFrameworks/MSBuildAppWithMultipleFrameworks.csproj
@@ -3,7 +3,7 @@
Exe
- net451;netcoreapp2.0
+ net451;netcoreapp2.1
\ No newline at end of file
diff --git a/TestAssets/TestProjects/MSBuildAppWithMultipleFrameworksAndTools/MSBuildAppWithMultipleFrameworksAndTools.csproj b/TestAssets/TestProjects/MSBuildAppWithMultipleFrameworksAndTools/MSBuildAppWithMultipleFrameworksAndTools.csproj
index 766c1ae66..a3aea4813 100644
--- a/TestAssets/TestProjects/MSBuildAppWithMultipleFrameworksAndTools/MSBuildAppWithMultipleFrameworksAndTools.csproj
+++ b/TestAssets/TestProjects/MSBuildAppWithMultipleFrameworksAndTools/MSBuildAppWithMultipleFrameworksAndTools.csproj
@@ -3,13 +3,13 @@
Exe
- net451;netcoreapp2.0
+ net451;netcoreapp2.1
-
+
diff --git a/TestAssets/TestProjects/MSBuildTestApp/MSBuildTestApp.csproj b/TestAssets/TestProjects/MSBuildTestApp/MSBuildTestApp.csproj
index 79bceb82d..58e9e4b5b 100644
--- a/TestAssets/TestProjects/MSBuildTestApp/MSBuildTestApp.csproj
+++ b/TestAssets/TestProjects/MSBuildTestApp/MSBuildTestApp.csproj
@@ -3,8 +3,9 @@
Exe
- netcoreapp2.0
- win7-x64;win7-x86;osx.10.12-x64;ubuntu.14.04-x64;ubuntu.16.04-x64;ubuntu.16.10-x64;centos.7-x64;rhel.7-x64;debian.8-x64;fedora.24-x64;opensuse.42.1-x64
+ netcoreapp2.1
+ win7-x64;win7-x86;osx.10.12-x64;ubuntu.14.04-x64;ubuntu.16.04-x64;ubuntu.16.10-x64;rhel.6-x64;centos.7-x64;rhel.7-x64;debian.8-x64;fedora.24-x64;opensuse.42.1-x64
+ $(TEST_PACKAGES)
diff --git a/TestAssets/TestProjects/MSBuildTestApp/NuGet.Config b/TestAssets/TestProjects/MSBuildTestApp/NuGet.Config
deleted file mode 100644
index b8e876fcb..000000000
--- a/TestAssets/TestProjects/MSBuildTestApp/NuGet.Config
+++ /dev/null
@@ -1,6 +0,0 @@
-
-
-
-
-
-
diff --git a/TestAssets/TestProjects/MultiDependentProject/MultiDependentProject.csproj b/TestAssets/TestProjects/MultiDependentProject/MultiDependentProject.csproj
index 8437d1b6d..9d52a2484 100644
--- a/TestAssets/TestProjects/MultiDependentProject/MultiDependentProject.csproj
+++ b/TestAssets/TestProjects/MultiDependentProject/MultiDependentProject.csproj
@@ -2,7 +2,7 @@
Exe
- netcoreapp2.0
+ netcoreapp2.1
diff --git a/TestAssets/TestProjects/NewtonSoftDependentProject/NewtonSoftDependentProject.csproj b/TestAssets/TestProjects/NewtonSoftDependentProject/NewtonSoftDependentProject.csproj
index 48bba3bea..cff7d9c45 100644
--- a/TestAssets/TestProjects/NewtonSoftDependentProject/NewtonSoftDependentProject.csproj
+++ b/TestAssets/TestProjects/NewtonSoftDependentProject/NewtonSoftDependentProject.csproj
@@ -2,7 +2,7 @@
Exe
- netcoreapp2.0
+ netcoreapp2.1
diff --git a/TestAssets/TestProjects/NuGet.Config b/TestAssets/TestProjects/NuGet.Config
deleted file mode 100644
index b03d4d16c..000000000
--- a/TestAssets/TestProjects/NuGet.Config
+++ /dev/null
@@ -1,6 +0,0 @@
-
-
-
-
-
-
diff --git a/TestAssets/TestProjects/NuGetConfigDependentProject/NuGetConfigDependentProject.csproj b/TestAssets/TestProjects/NuGetConfigDependentProject/NuGetConfigDependentProject.csproj
index fd76d5489..340e58180 100644
--- a/TestAssets/TestProjects/NuGetConfigDependentProject/NuGetConfigDependentProject.csproj
+++ b/TestAssets/TestProjects/NuGetConfigDependentProject/NuGetConfigDependentProject.csproj
@@ -2,7 +2,7 @@
Exe
- netcoreapp2.0
+ netcoreapp2.1
diff --git a/TestAssets/TestProjects/TestAppSimple/TestAppSimple.csproj b/TestAssets/TestProjects/TestAppSimple/TestAppSimple.csproj
index e9f02f323..f99d38872 100755
--- a/TestAssets/TestProjects/TestAppSimple/TestAppSimple.csproj
+++ b/TestAssets/TestProjects/TestAppSimple/TestAppSimple.csproj
@@ -2,7 +2,7 @@
- netcoreapp2.0
+ netcoreapp2.1Exetrue
diff --git a/TestAssets/TestProjects/TestAppWithEmptySln/App/App.csproj b/TestAssets/TestProjects/TestAppWithEmptySln/App/App.csproj
index ce5bf06cb..a4eeac8a4 100644
--- a/TestAssets/TestProjects/TestAppWithEmptySln/App/App.csproj
+++ b/TestAssets/TestProjects/TestAppWithEmptySln/App/App.csproj
@@ -3,7 +3,7 @@
Exe
- netcoreapp2.0
+ netcoreapp2.1
diff --git a/TestAssets/TestProjects/TestAppWithMultipleSlnFiles/App/App.csproj b/TestAssets/TestProjects/TestAppWithMultipleSlnFiles/App/App.csproj
index 7a2163613..45701ff71 100644
--- a/TestAssets/TestProjects/TestAppWithMultipleSlnFiles/App/App.csproj
+++ b/TestAssets/TestProjects/TestAppWithMultipleSlnFiles/App/App.csproj
@@ -3,7 +3,7 @@
Exe
- netcoreapp2.0
+ netcoreapp2.1
diff --git a/TestAssets/TestProjects/TestAppWithProjDepTool/NuGet.Config b/TestAssets/TestProjects/TestAppWithProjDepTool/NuGet.Config
deleted file mode 100644
index b8e876fcb..000000000
--- a/TestAssets/TestProjects/TestAppWithProjDepTool/NuGet.Config
+++ /dev/null
@@ -1,6 +0,0 @@
-
-
-
-
-
-
diff --git a/TestAssets/TestProjects/TestAppWithProjDepTool/TestAppWithProjDepTool.csproj b/TestAssets/TestProjects/TestAppWithProjDepTool/TestAppWithProjDepTool.csproj
index 3f8176791..b4e6c9844 100644
--- a/TestAssets/TestProjects/TestAppWithProjDepTool/TestAppWithProjDepTool.csproj
+++ b/TestAssets/TestProjects/TestAppWithProjDepTool/TestAppWithProjDepTool.csproj
@@ -3,7 +3,8 @@
Exe
- netcoreapp2.0
+ netcoreapp2.1
+ $(TEST_PACKAGES)
diff --git a/TestAssets/TestProjects/TestAppWithSlnAndCaseSensitiveSolutionFolders/src/App/App.csproj b/TestAssets/TestProjects/TestAppWithSlnAndCaseSensitiveSolutionFolders/src/App/App.csproj
index 3a31eb5bf..358a47d7c 100644
--- a/TestAssets/TestProjects/TestAppWithSlnAndCaseSensitiveSolutionFolders/src/App/App.csproj
+++ b/TestAssets/TestProjects/TestAppWithSlnAndCaseSensitiveSolutionFolders/src/App/App.csproj
@@ -3,7 +3,7 @@
Exe
- netcoreapp2.0
+ netcoreapp2.1
diff --git a/TestAssets/TestProjects/TestAppWithSlnAndCsprojFiles/App/App.csproj b/TestAssets/TestProjects/TestAppWithSlnAndCsprojFiles/App/App.csproj
index ce5bf06cb..a4eeac8a4 100644
--- a/TestAssets/TestProjects/TestAppWithSlnAndCsprojFiles/App/App.csproj
+++ b/TestAssets/TestProjects/TestAppWithSlnAndCsprojFiles/App/App.csproj
@@ -3,7 +3,7 @@
Exe
- netcoreapp2.0
+ netcoreapp2.1
diff --git a/TestAssets/TestProjects/TestAppWithSlnAndCsprojInSubDir/App.csproj b/TestAssets/TestProjects/TestAppWithSlnAndCsprojInSubDir/App.csproj
index 92f102c88..1fed155a1 100644
--- a/TestAssets/TestProjects/TestAppWithSlnAndCsprojInSubDir/App.csproj
+++ b/TestAssets/TestProjects/TestAppWithSlnAndCsprojInSubDir/App.csproj
@@ -3,7 +3,7 @@
Exe
- netcoreapp2.0
+ netcoreapp2.1
diff --git a/TestAssets/TestProjects/TestAppWithSlnAndCsprojInSubDirToRemove/App.csproj b/TestAssets/TestProjects/TestAppWithSlnAndCsprojInSubDirToRemove/App.csproj
index abea1bc3d..5ba5d5bac 100644
--- a/TestAssets/TestProjects/TestAppWithSlnAndCsprojInSubDirToRemove/App.csproj
+++ b/TestAssets/TestProjects/TestAppWithSlnAndCsprojInSubDirToRemove/App.csproj
@@ -3,7 +3,7 @@
Exe
- netcoreapp2.0
+ netcoreapp2.1
diff --git a/TestAssets/TestProjects/TestAppWithSlnAndCsprojProjectGuidFiles/App/App.csproj b/TestAssets/TestProjects/TestAppWithSlnAndCsprojProjectGuidFiles/App/App.csproj
index ce5bf06cb..a4eeac8a4 100644
--- a/TestAssets/TestProjects/TestAppWithSlnAndCsprojProjectGuidFiles/App/App.csproj
+++ b/TestAssets/TestProjects/TestAppWithSlnAndCsprojProjectGuidFiles/App/App.csproj
@@ -3,7 +3,7 @@
Exe
- netcoreapp2.0
+ netcoreapp2.1
diff --git a/TestAssets/TestProjects/TestAppWithSlnAndCsprojToRemove/App/App.csproj b/TestAssets/TestProjects/TestAppWithSlnAndCsprojToRemove/App/App.csproj
index 7a2163613..45701ff71 100644
--- a/TestAssets/TestProjects/TestAppWithSlnAndCsprojToRemove/App/App.csproj
+++ b/TestAssets/TestProjects/TestAppWithSlnAndCsprojToRemove/App/App.csproj
@@ -3,7 +3,7 @@
Exe
- netcoreapp2.0
+ netcoreapp2.1
diff --git a/TestAssets/TestProjects/TestAppWithSlnAndDuplicateProjectReferences/App/App.csproj b/TestAssets/TestProjects/TestAppWithSlnAndDuplicateProjectReferences/App/App.csproj
index ce5bf06cb..a4eeac8a4 100644
--- a/TestAssets/TestProjects/TestAppWithSlnAndDuplicateProjectReferences/App/App.csproj
+++ b/TestAssets/TestProjects/TestAppWithSlnAndDuplicateProjectReferences/App/App.csproj
@@ -3,7 +3,7 @@
Exe
- netcoreapp2.0
+ netcoreapp2.1
diff --git a/TestAssets/TestProjects/TestAppWithSlnAndExistingCsprojReferences/App/App.csproj b/TestAssets/TestProjects/TestAppWithSlnAndExistingCsprojReferences/App/App.csproj
index 21cce6681..5469ce225 100644
--- a/TestAssets/TestProjects/TestAppWithSlnAndExistingCsprojReferences/App/App.csproj
+++ b/TestAssets/TestProjects/TestAppWithSlnAndExistingCsprojReferences/App/App.csproj
@@ -3,7 +3,7 @@
Exe
- netcoreapp2.0
+ netcoreapp2.1
diff --git a/TestAssets/TestProjects/TestAppWithSlnAndExistingCsprojReferencesWithEscapedDirSep/App/App.csproj b/TestAssets/TestProjects/TestAppWithSlnAndExistingCsprojReferencesWithEscapedDirSep/App/App.csproj
index 21cce6681..5469ce225 100644
--- a/TestAssets/TestProjects/TestAppWithSlnAndExistingCsprojReferencesWithEscapedDirSep/App/App.csproj
+++ b/TestAssets/TestProjects/TestAppWithSlnAndExistingCsprojReferencesWithEscapedDirSep/App/App.csproj
@@ -3,7 +3,7 @@
Exe
- netcoreapp2.0
+ netcoreapp2.1
diff --git a/TestAssets/TestProjects/TestAppWithSlnAndLastCsprojInSubDirToRemove/App.csproj b/TestAssets/TestProjects/TestAppWithSlnAndLastCsprojInSubDirToRemove/App.csproj
index abea1bc3d..5ba5d5bac 100644
--- a/TestAssets/TestProjects/TestAppWithSlnAndLastCsprojInSubDirToRemove/App.csproj
+++ b/TestAssets/TestProjects/TestAppWithSlnAndLastCsprojInSubDirToRemove/App.csproj
@@ -3,7 +3,7 @@
Exe
- netcoreapp2.0
+ netcoreapp2.1
diff --git a/TestAssets/TestProjects/TestAppWithSlnAndSolutionFolders/src/App/App.csproj b/TestAssets/TestProjects/TestAppWithSlnAndSolutionFolders/src/App/App.csproj
index 3a31eb5bf..358a47d7c 100644
--- a/TestAssets/TestProjects/TestAppWithSlnAndSolutionFolders/src/App/App.csproj
+++ b/TestAssets/TestProjects/TestAppWithSlnAndSolutionFolders/src/App/App.csproj
@@ -3,7 +3,7 @@
Exe
- netcoreapp2.0
+ netcoreapp2.1
diff --git a/TestAssets/TestProjects/TestAppWithSlnProjectDependencyToRemove/App.sln b/TestAssets/TestProjects/TestAppWithSlnProjectDependencyToRemove/App.sln
new file mode 100644
index 000000000..97c495544
--- /dev/null
+++ b/TestAssets/TestProjects/TestAppWithSlnProjectDependencyToRemove/App.sln
@@ -0,0 +1,44 @@
+
+Microsoft Visual Studio Solution File, Format Version 12.00
+# Visual Studio 15
+VisualStudioVersion = 15.0.27110.0
+MinimumVisualStudioVersion = 10.0.40219.1
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "App", "App\App.csproj", "{BB02B949-F6BD-4872-95CB-96A05B1FE026}"
+ ProjectSection(ProjectDependencies) = postProject
+ {4E952B56-841D-461D-89A9-7977DDCC0625} = {4E952B56-841D-461D-89A9-7977DDCC0625}
+ {D53E177A-8ECF-43D5-A01E-98B884D53CA6} = {D53E177A-8ECF-43D5-A01E-98B884D53CA6}
+ EndProjectSection
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "First", "First\First.csproj", "{D53E177A-8ECF-43D5-A01E-98B884D53CA6}"
+ ProjectSection(ProjectDependencies) = postProject
+ {4E952B56-841D-461D-89A9-7977DDCC0625} = {4E952B56-841D-461D-89A9-7977DDCC0625}
+ EndProjectSection
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Second", "Second\Second.csproj", "{4E952B56-841D-461D-89A9-7977DDCC0625}"
+EndProject
+Global
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug|Any CPU = Debug|Any CPU
+ Release|Any CPU = Release|Any CPU
+ EndGlobalSection
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {BB02B949-F6BD-4872-95CB-96A05B1FE026}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {BB02B949-F6BD-4872-95CB-96A05B1FE026}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {BB02B949-F6BD-4872-95CB-96A05B1FE026}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {BB02B949-F6BD-4872-95CB-96A05B1FE026}.Release|Any CPU.Build.0 = Release|Any CPU
+ {D53E177A-8ECF-43D5-A01E-98B884D53CA6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {D53E177A-8ECF-43D5-A01E-98B884D53CA6}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {D53E177A-8ECF-43D5-A01E-98B884D53CA6}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {D53E177A-8ECF-43D5-A01E-98B884D53CA6}.Release|Any CPU.Build.0 = Release|Any CPU
+ {4E952B56-841D-461D-89A9-7977DDCC0625}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {4E952B56-841D-461D-89A9-7977DDCC0625}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {4E952B56-841D-461D-89A9-7977DDCC0625}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {4E952B56-841D-461D-89A9-7977DDCC0625}.Release|Any CPU.Build.0 = Release|Any CPU
+ EndGlobalSection
+ GlobalSection(SolutionProperties) = preSolution
+ HideSolutionNode = FALSE
+ EndGlobalSection
+ GlobalSection(ExtensibilityGlobals) = postSolution
+ SolutionGuid = {F6D9A973-1CFD-41C9-84F2-1471C0FE67DF}
+ EndGlobalSection
+EndGlobal
diff --git a/TestAssets/TestProjects/TestAppWithSlnProjectDependencyToRemove/App/App.csproj b/TestAssets/TestProjects/TestAppWithSlnProjectDependencyToRemove/App/App.csproj
new file mode 100644
index 000000000..ce1697ae8
--- /dev/null
+++ b/TestAssets/TestProjects/TestAppWithSlnProjectDependencyToRemove/App/App.csproj
@@ -0,0 +1,8 @@
+
+
+
+ Exe
+ netcoreapp2.0
+
+
+
diff --git a/TestAssets/TestProjects/TestAppWithSlnProjectDependencyToRemove/App/Program.cs b/TestAssets/TestProjects/TestAppWithSlnProjectDependencyToRemove/App/Program.cs
new file mode 100644
index 000000000..be4278310
--- /dev/null
+++ b/TestAssets/TestProjects/TestAppWithSlnProjectDependencyToRemove/App/Program.cs
@@ -0,0 +1,12 @@
+using System;
+
+namespace App
+{
+ class Program
+ {
+ static void Main(string[] args)
+ {
+ Console.WriteLine("Hello World!");
+ }
+ }
+}
diff --git a/TestAssets/TestProjects/TestAppWithSlnProjectDependencyToRemove/First/Class1.cs b/TestAssets/TestProjects/TestAppWithSlnProjectDependencyToRemove/First/Class1.cs
new file mode 100644
index 000000000..3a358f6f2
--- /dev/null
+++ b/TestAssets/TestProjects/TestAppWithSlnProjectDependencyToRemove/First/Class1.cs
@@ -0,0 +1,8 @@
+using System;
+
+namespace First
+{
+ public class Class1
+ {
+ }
+}
diff --git a/TestAssets/TestProjects/TestAppWithSlnProjectDependencyToRemove/First/First.csproj b/TestAssets/TestProjects/TestAppWithSlnProjectDependencyToRemove/First/First.csproj
new file mode 100644
index 000000000..9f5c4f4ab
--- /dev/null
+++ b/TestAssets/TestProjects/TestAppWithSlnProjectDependencyToRemove/First/First.csproj
@@ -0,0 +1,7 @@
+
+
+
+ netstandard2.0
+
+
+
diff --git a/TestAssets/TestProjects/TestAppWithSlnProjectDependencyToRemove/Second/Class1.cs b/TestAssets/TestProjects/TestAppWithSlnProjectDependencyToRemove/Second/Class1.cs
new file mode 100644
index 000000000..a39ee63c8
--- /dev/null
+++ b/TestAssets/TestProjects/TestAppWithSlnProjectDependencyToRemove/Second/Class1.cs
@@ -0,0 +1,8 @@
+using System;
+
+namespace Second
+{
+ public class Class1
+ {
+ }
+}
diff --git a/TestAssets/TestProjects/TestAppWithSlnProjectDependencyToRemove/Second/Second.csproj b/TestAssets/TestProjects/TestAppWithSlnProjectDependencyToRemove/Second/Second.csproj
new file mode 100644
index 000000000..9f5c4f4ab
--- /dev/null
+++ b/TestAssets/TestProjects/TestAppWithSlnProjectDependencyToRemove/Second/Second.csproj
@@ -0,0 +1,7 @@
+
+
+
+ netstandard2.0
+
+
+
diff --git a/TestAssets/TestProjects/VBTestApp/VBTestApp.vbproj b/TestAssets/TestProjects/VBTestApp/VBTestApp.vbproj
index ce1697ae8..23df6047f 100644
--- a/TestAssets/TestProjects/VBTestApp/VBTestApp.vbproj
+++ b/TestAssets/TestProjects/VBTestApp/VBTestApp.vbproj
@@ -2,7 +2,7 @@
Exe
- netcoreapp2.0
+ netcoreapp2.1
diff --git a/TestAssets/TestProjects/VSTestCore/VSTestCore.csproj b/TestAssets/TestProjects/VSTestCore/VSTestCore.csproj
index 0d07738af..87c96e9b2 100644
--- a/TestAssets/TestProjects/VSTestCore/VSTestCore.csproj
+++ b/TestAssets/TestProjects/VSTestCore/VSTestCore.csproj
@@ -3,7 +3,7 @@
Exe
- netcoreapp2.0
+ netcoreapp2.1
diff --git a/TestAssets/TestProjects/VSTestMulti/VSTestDesktopAndNetCore.csproj b/TestAssets/TestProjects/VSTestMulti/VSTestDesktopAndNetCore.csproj
index 1a8fb8e53..1311e72ea 100644
--- a/TestAssets/TestProjects/VSTestMulti/VSTestDesktopAndNetCore.csproj
+++ b/TestAssets/TestProjects/VSTestMulti/VSTestDesktopAndNetCore.csproj
@@ -2,7 +2,7 @@
- net46;netcoreapp2.0
+ net46;netcoreapp2.1
diff --git a/TestAssets/TestProjects/XunitCore/XunitCore.csproj b/TestAssets/TestProjects/XunitCore/XunitCore.csproj
index d6016beea..f2721a220 100644
--- a/TestAssets/TestProjects/XunitCore/XunitCore.csproj
+++ b/TestAssets/TestProjects/XunitCore/XunitCore.csproj
@@ -3,7 +3,7 @@
Exe
- netcoreapp2.0
+ netcoreapp2.1
diff --git a/TestAssets/TestProjects/XunitMulti/VSTestXunitDesktopAndNetCore.csproj b/TestAssets/TestProjects/XunitMulti/VSTestXunitDesktopAndNetCore.csproj
index 3c971a5e9..350f2c991 100644
--- a/TestAssets/TestProjects/XunitMulti/VSTestXunitDesktopAndNetCore.csproj
+++ b/TestAssets/TestProjects/XunitMulti/VSTestXunitDesktopAndNetCore.csproj
@@ -2,7 +2,7 @@
- net46;netcoreapp2.0
+ net46;netcoreapp2.1win7-x86win7-x86
@@ -11,7 +11,7 @@
DESKTOP;$(DefineConstants)
-
+
diff --git a/TestAssets/TestProjects/global.json b/TestAssets/TestProjects/global.json
deleted file mode 100644
index 09f20328d..000000000
--- a/TestAssets/TestProjects/global.json
+++ /dev/null
@@ -1,3 +0,0 @@
-{
- "projects": [ ".", "../../src" ]
-}
\ No newline at end of file
diff --git a/build.proj b/build.proj
index 85de07477..94babcb75 100644
--- a/build.proj
+++ b/build.proj
@@ -1,6 +1,6 @@
-
+
@@ -20,7 +20,7 @@
DependsOnTargets="MSBuildWorkaroundTarget;
RestoreDotnetCliBuildFramework">
-
@@ -40,7 +40,7 @@
$(ExtraRestoreArgs) --disable-parallel
-
@@ -52,6 +52,7 @@
+
diff --git a/build.sh b/build.sh
index 2177e91b7..99a136aa7 100755
--- a/build.sh
+++ b/build.sh
@@ -24,7 +24,7 @@ if [ -z "$HOME" ]; then
mkdir -p $HOME
fi
-args=( "$@" )
+args=
while [[ $# > 0 ]]; do
lowerI="$(echo $1 | awk '{print tolower($0)}')"
@@ -32,23 +32,15 @@ while [[ $# > 0 ]]; do
--docker)
export BUILD_IN_DOCKER=1
export DOCKER_IMAGENAME=$2
- # remove docker args
- args=( "${args[@]/$1}" )
- args=( "${args[@]/$2}" )
shift
;;
*)
+ args="$args $1"
+ ;;
esac
shift
done
-# $args array may have empty elements in it.
-# The easiest way to remove them is to cast to string and back to array.
-# This will actually break quoted arguments, arguments like
-# -test "hello world" will be broken into three arguments instead of two, as it should.
-temp="${args[@]}"
-args=($temp)
-
dockerbuild()
{
BUILD_COMMAND=/opt/code/run-build.sh $DIR/scripts/dockerrun.sh --non-interactive "$@"
@@ -56,7 +48,7 @@ dockerbuild()
# Check if we need to build in docker
if [ ! -z "$BUILD_IN_DOCKER" ]; then
- dockerbuild "${args[@]}"
+ dockerbuild $args
else
- $DIR/run-build.sh "${args[@]}"
+ $DIR/run-build.sh $args
fi
diff --git a/build/AzureInfo.props b/build/AzureInfo.props
index 2773a817c..0d85869ee 100644
--- a/build/AzureInfo.props
+++ b/build/AzureInfo.props
@@ -1,4 +1,4 @@
-
+Sdk$(ARTIFACT_STORAGE_CONTAINER)
diff --git a/build/BackwardsCompatibilityRuntimes.props b/build/BackwardsCompatibilityRuntimes.props
index 9664fdadf..d9b7ddc24 100644
--- a/build/BackwardsCompatibilityRuntimes.props
+++ b/build/BackwardsCompatibilityRuntimes.props
@@ -1,4 +1,4 @@
-
+release/1.1.01.1.2
diff --git a/build/BranchInfo.props b/build/BranchInfo.props
index f048a677e..f62c8fd00 100644
--- a/build/BranchInfo.props
+++ b/build/BranchInfo.props
@@ -1,6 +1,6 @@
-
+
- release/15.5
- release/15.5
+ master
+ master
diff --git a/build/Branding.props b/build/Branding.props
index ff634ec93..393b8d32e 100644
--- a/build/Branding.props
+++ b/build/Branding.props
@@ -1,23 +1,24 @@
-
+
- Microsoft .NET Core SDK - 2.1.2
+ Microsoft .NET Core SDK 2.2.0 - Preview.NET Standard Support for Visual Studio 2015
- Microsoft .NET Core Runtime - 2.0.3
- Microsoft .NET Core Host - 2.0.1
- Microsoft .NET Core Host FX Resolver - 2.0.0
+ Microsoft .NET Core Runtime 2.1.0 - Preview
+ Microsoft .NET Core Host 2.1.0 - Preview
+ Microsoft .NET Core Host FX Resolver 2.1.0 - PreviewMicrosoft.NETCore.App$(SharedFrameworkName)$(Rid)$(OSName)-$(Architecture)
+
$(HostRid)
+ '$(HostRid)' == 'fedora.24-x64' OR
+ '$(HostRid)' == 'rhel.6-x64' OR
+ '$(HostRid)' == 'opensuse.42.1-x64' ">$(HostRid)
$(HostOSName)-$(Architecture)dotnet-sdk-internal
@@ -31,6 +32,7 @@
$(ArtifactNameSdkSymbols)-$(SdkVersion)-$(ProductMonikerRid)$(ArtifactNameCombinedHostHostFxrFrameworkSdk)-$(SdkVersion)-$(ProductMonikerRid)$(ArtifactNameSdkLanguagePack)-$(SdkVersion)-$(ProductMonikerRid)
- $(ArtifactNameCombinedHostHostFxrFrameworkSdk)-$(SdkVersion)-$(HostMonikerRid)
+ $(ArtifactNameCombinedHostHostFxrFrameworkSdk)-$(SdkVersion)-
+ $(DistroSpecificArtifactNameWithVersionCombinedHostHostFxrFrameworkSdkWithoutHostMonikerRid)$(HostMonikerRid)
diff --git a/build/BuildAndPublishAllLinuxDistrosNativeInstallers.targets b/build/BuildAndPublishAllLinuxDistrosNativeInstallers.targets
new file mode 100644
index 000000000..af2faa465
--- /dev/null
+++ b/build/BuildAndPublishAllLinuxDistrosNativeInstallers.targets
@@ -0,0 +1,30 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ true
+
+
+
\ No newline at end of file
diff --git a/build/BuildDefaults.props b/build/BuildDefaults.props
index 64eddcfd4..f13caffcd 100644
--- a/build/BuildDefaults.props
+++ b/build/BuildDefaults.props
@@ -1,11 +1,21 @@
-
+Prepare;Compile;Test;Package;PublishDebugtrue
+ truefalse
- true
- true
+ true
+ truetrue
+
+
+ true
+
+
+
+ NU1701
+
+ true
diff --git a/build/BuildInfo.targets b/build/BuildInfo.targets
index df28e1980..6abd51fa9 100644
--- a/build/BuildInfo.targets
+++ b/build/BuildInfo.targets
@@ -21,7 +21,7 @@
linux
-<Project ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<Rid>$(Rid)</Rid>
<Architecture>$(Architecture)</Architecture>
diff --git a/build/BundledRuntimes.props b/build/BundledRuntimes.props
index cbc7a67a0..82d926e11 100644
--- a/build/BundledRuntimes.props
+++ b/build/BundledRuntimes.props
@@ -1,4 +1,4 @@
-
+$(HostRid)$(HostMonikerRid)
@@ -21,9 +21,6 @@
$(CoreSetupRid)linux-x64dotnet-runtime-$(SharedFrameworkVersion)-$(SharedFrameworkRid)$(ArchiveExtension)
-
- $([System.Text.RegularExpressions.Regex]::IsMatch($(SharedFrameworkVersion), '\d*\.\d*\.\d*-'))
- $([System.Text.RegularExpressions.Regex]::Match($(SharedFrameworkVersion), '\d*\.\d*\.\d*').get_Groups().get_Item(0).ToString())
@@ -35,21 +32,17 @@
- $(CoreSetupBlobRootUrl)aspnetcore/store/$(AspNetCoreRuntimeAzureblobStoresSubfolderName)
+ $(CoreSetupBlobRootUrl)aspnetcore/store/$(AspNetCoreRuntimePackageFolderName)runtime.version$(PackagesDirectory)/$(AspNetCoreSharedRuntimeVersionFileName)
-
- $(HostOSName)$(Architecture)
- $(HostOSName)
- linux
-
- -$(AspNetCoreRuntimePackageTimestamp)
- -$(AspNetCoreRelease)$(AspNetCoreRuntimeStoreSuffix)
- Build.RS.$(AspNetCoreRuntimeInstallerArchiveFileNameOSToken)$(AspNetCoreRuntimeInstallerArchiveSuffix)$(ArchiveExtension)
+ win7-$(Architecture)
+ $(HostOSName)-$(Architecture)
+ linux-$(Architecture)
+ $(AspNetCoreRuntimePackageBrandName)-$(AspNetCoreRuntimePackageVersion)-$(AspNetCoreRuntimeInstallerArchiveFileNameOSToken)$(ArchiveExtension)$(PackagesDirectory)/$(AspNetCoreRuntimeInstallerArchiveFileName)
- AspNetCorePackageStoreLib$(Architecture)$(AspNetCoreRuntimeStoreSuffix).wixlib
+ AspNetCorePackageStoreLib_$(Architecture)-$(AspNetCoreRuntimePackageVersion).wixlib$(PackagesDirectory)/$(AspNetCoreRuntimeInstallerWixLibFileName)
diff --git a/build/BundledSdks.props b/build/BundledSdks.props
index b259c4a2a..77a089668 100644
--- a/build/BundledSdks.props
+++ b/build/BundledSdks.props
@@ -1,4 +1,4 @@
-
+
diff --git a/build/BundledTemplates.proj b/build/BundledTemplates.proj
index 014f5bc92..dfc66e111 100644
--- a/build/BundledTemplates.proj
+++ b/build/BundledTemplates.proj
@@ -23,7 +23,7 @@
-
diff --git a/build/BundledTemplates.props b/build/BundledTemplates.props
index a7a7069ab..7b30af2ef 100644
--- a/build/BundledTemplates.props
+++ b/build/BundledTemplates.props
@@ -1,8 +1,8 @@
-
+
-
-
+
+
diff --git a/build/BundledTools.props b/build/BundledTools.props
index b57577824..947148dd5 100644
--- a/build/BundledTools.props
+++ b/build/BundledTools.props
@@ -1,4 +1,4 @@
-
+runtime.$(SharedFrameworkRid).microsoft.netcore.app$(NuGetPackagesDir)/$(RuntimeNETCoreAppPackageName)/$(CLI_SharedFrameworkVersion)/tools/crossgen$(ExeExtension)
diff --git a/build/DependencyVersions.props b/build/DependencyVersions.props
index 7258b411e..0ee460bb9 100644
--- a/build/DependencyVersions.props
+++ b/build/DependencyVersions.props
@@ -1,51 +1,43 @@
-
+
- 2.0.3
+ 2.1.0-preview1-25929-0215.5.1792.6.0-beta3-62309-011.6.0-beta2-25304
- 4.2.0-rtm-171104-0
- pre-20171122-1
+ 4.2.0-rtm-171122-0
+ pre-20171012-12.6.0-$(CLI_Deps_Satellites_Build)4.4.1-$(CLI_Deps_Satellites_Build)
- 15.5.0-preview-20171116-1
+ 2.1.0-preview1-20171121-1$(CLI_NETSDK_Version)4.5.0-rtm-46512.0.1-servicing-25908-02
- 2.0.0-rel-20171010-665
+ 2.0.0-rel-20171110-67115.5.0$(CLI_SharedFrameworkVersion)$(CLI_SharedFrameworkVersion)$(CLI_SharedFrameworkVersion)1.0.0-beta3-20171117-314
- 1.0.0-beta3-20171110-312
- 1.0.0-beta3-20171110-312
- 1.0.0-beta2-20170810-304
- 2.0.0
- 2.0.0
- 0.1.1-alpha-167
+ 1.0.0-beta3-20171117-314
+ 1.0.0-beta3-20171117-314
+ 1.0.0-beta2-20171004-309
+ 2.1.0-preview1-25929-02
+ 2.1.0-preview1-25929-02
+ 0.1.1-alpha-1741.2.1-alpha-0021330.2.00.2.0-beta-000042
-
+ 0.2.0-beta-0000592.0.3
-
- notimestamp
-
- 2.0.3
- rtm
- 2.0.3
- 125
-
aspnetcore-store
- $(AspNetCoreVersion)-$(AspNetCoreRelease)
- $(AspNetCoreBranchName)-$(AspNetCoreRuntimePackageTimestamp)
+ dev-26623
+ 2.1.0-preview1-26623
diff --git a/build/DerivedHostMachineInfo.props b/build/DerivedHostMachineInfo.props
index d9dc94444..534bc2167 100644
--- a/build/DerivedHostMachineInfo.props
+++ b/build/DerivedHostMachineInfo.props
@@ -1,7 +1,9 @@
-
-
- true
- true
- true
-
+
+
+ true
+ true
+
+ true
+ true
+
diff --git a/build/FileExtensions.props b/build/FileExtensions.props
index 21f8a68d2..c9f943b13 100644
--- a/build/FileExtensions.props
+++ b/build/FileExtensions.props
@@ -1,4 +1,4 @@
-
+.zip.tar.gz
diff --git a/build/GenerateResxSource.targets b/build/GenerateResxSource.targets
index b25582ee2..1eb51907e 100644
--- a/build/GenerateResxSource.targets
+++ b/build/GenerateResxSource.targets
@@ -1,4 +1,4 @@
-
+
diff --git a/build/GitCommitInfo.targets b/build/GitCommitInfo.targets
index 4addb6c8a..6ac729e50 100644
--- a/build/GitCommitInfo.targets
+++ b/build/GitCommitInfo.targets
@@ -23,7 +23,7 @@
%(GitInfoCommitHashLines.Identity)
-<Project ToolsVersion="15.0">
+<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<CommitCount>$(GitInfoCommitCount)</CommitCount>
<CommitHash>$(GitInfoCommitHash)</CommitHash>
diff --git a/build/HostInfo.targets b/build/HostInfo.targets
index 50331f196..ed1046cc0 100644
--- a/build/HostInfo.targets
+++ b/build/HostInfo.targets
@@ -10,7 +10,7 @@
-<Project ToolsVersion="15.0">
+<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<HostRid>$(HostRid)</HostRid>
<HostOSName>$(HostOSName)</HostOSName>
diff --git a/build/InitRepo.props b/build/InitRepo.props
index bc7d7e630..1b050bc4e 100644
--- a/build/InitRepo.props
+++ b/build/InitRepo.props
@@ -1,6 +1,7 @@
- $(RepoRoot)/artifacts/obj
+ bin/obj
+ $(RepoRoot)/$(RelativeGeneratedPropsDir)$(GeneratedPropsDir)/GitCommitInfo.props$(GeneratedPropsDir)/HostInfo.props$(GeneratedPropsDir)/BuildInfo.props
diff --git a/build/InputDirectories.props b/build/InputDirectories.props
index 0fc1b7a74..7564abe34 100644
--- a/build/InputDirectories.props
+++ b/build/InputDirectories.props
@@ -1,4 +1,4 @@
-
+$(RepoRoot)/build_projects/dotnet-cli-build$(RepoRoot)/src
diff --git a/build/InstallerInfo.props b/build/InstallerInfo.props
index 036369fab..31fadd75e 100644
--- a/build/InstallerInfo.props
+++ b/build/InstallerInfo.props
@@ -1,4 +1,4 @@
-
+$(PackagesDirectory)$(InstallerOutputDirectory)/$(ArtifactNameWithVersionSdk)$(InstallerExtension)
diff --git a/build/LinuxDistrosNativeInstaller.props b/build/LinuxDistrosNativeInstaller.props
new file mode 100644
index 000000000..d10dde9bc
--- /dev/null
+++ b/build/LinuxDistrosNativeInstaller.props
@@ -0,0 +1,28 @@
+
+
+
+ ubuntu.16.04
+ deb
+ $(ubuntu1604x64RepositoryId)
+ ubuntu.16.04-x64
+
+
+ ubuntu.14.04
+ deb
+ $(ubuntu1404x64RepositoryId)
+ ubuntu-x64
+
+
+ debian
+ deb
+ $(debian8x64RepositoryId)
+ debian-x64
+
+
+ rhel
+ rpm
+ $(rhel7x64RepositoryId)
+ rhel-x64
+
+
+
\ No newline at end of file
diff --git a/build/MSBuildExtensions.props b/build/MSBuildExtensions.props
index c36782efe..26f27e8c4 100644
--- a/build/MSBuildExtensions.props
+++ b/build/MSBuildExtensions.props
@@ -1,4 +1,4 @@
-
+$(RepoRoot)/resources/MSBuildImports
diff --git a/build/MSBuildExtensions.targets b/build/MSBuildExtensions.targets
index c6dd9f7ae..e24b2225b 100644
--- a/build/MSBuildExtensions.targets
+++ b/build/MSBuildExtensions.targets
@@ -75,7 +75,7 @@
NuGetPackagesDir=$(NuGetPackagesDir);
DependencyPackageName=%(ExtensionPackageToRestore.Identity);
DependencyPackageVersion=%(ExtensionPackageToRestore.Version);
- Stage0Directory=$(Stage0Directory)
+ PreviousStageDirectory=$(PreviousStageDirectory)
diff --git a/build/MicroBuild.props b/build/MicroBuild.props
index 1cf77f45b..f55a5eea1 100644
--- a/build/MicroBuild.props
+++ b/build/MicroBuild.props
@@ -1,9 +1,6 @@
-
- $(MSBuildThisFileDirectory)/..
- $(NUGET_PACKAGES)$(RepoRoot)/.nuget/packages$(NuGetPackagesDir)/microbuild.core/$(MicroBuildVersion)/build/
diff --git a/build/Microsoft.DotNet.Cli.tasks b/build/Microsoft.DotNet.Cli.tasks
index 1c846d8b0..552ed1b34 100644
--- a/build/Microsoft.DotNet.Cli.tasks
+++ b/build/Microsoft.DotNet.Cli.tasks
@@ -33,6 +33,7 @@
+
diff --git a/build/OutputDirectories.props b/build/OutputDirectories.props
index 42e7d255a..5ffd7a590 100644
--- a/build/OutputDirectories.props
+++ b/build/OutputDirectories.props
@@ -1,23 +1,34 @@
-
+
- $(RepoRoot)/artifacts/$(Rid)
- $(BaseOutputDirectory)/stage2
- $(BaseOutputDirectory)/stage2WithBackwardsCompatibleRuntimes
+ $([MSBuild]::Add($(CliOuterBuildStage), '1'))
+ 2
+
+
+ $(RepoRoot)/bin/$(CliBuildStage)/$(Rid)
+ $([System.IO.Path]::GetFullPath('$(BaseOutputDirectory)/bin/$(MSBuildProjectName)'))
+
+ $([System.IO.Path]::GetFullPath('$(BaseOutputDirectory)/obj/$(MSBuildProjectName)'))
+ $(BaseOutputDirectory)/dotnet
+ $(BaseOutputDirectory)/dotnetWithBackwardsCompatibleRuntimes$(OutputDirectory)/sdk/$(SdkVersion)
- $(BaseOutputDirectory)/stage2symbols
+ $(BaseOutputDirectory)/symbols$(SdkOutputDirectory)/Roslyn$(SdkOutputDirectory)/FSharp
- $(BaseOutputDirectory)/stage2compilation
+ $(BaseOutputDirectory)/compilation$(BaseOutputDirectory)/intermediate$(BaseOutputDirectory)/packages$(IntermediateDirectory)/sharedFrameworkPublish$(BaseOutputDirectory)/AspRT$(IntermediateDirectory)/backwardsCompatibleSharedFrameworksPublish
- $(RepoRoot)/artifacts/testpackages/
+ $(BaseOutputDirectory)/test/$(OutputDirectory)/dotnet$(ExeExtension)$(IntermediateDirectory)/GeneratedMSBuildExtensions$(IntermediateDirectory)/MSBuildExtensionsLayout$(MSBuildExtensionsLayoutDirectory)/MSBuildSdkResolver
+
+ $(BaseOutputDirectory)/PreviousStage.props
diff --git a/build/Package.targets b/build/Package.targets
index 8896bdb1f..eef514f56 100644
--- a/build/Package.targets
+++ b/build/Package.targets
@@ -7,10 +7,11 @@
+
+ DependsOnTargets="Prepare;Layout;GeneratePkgs;GenerateDebs;GenerateMsis;GenerateRpms" />
-
+
+
+
+
\ No newline at end of file
diff --git a/build/Prepare.targets b/build/Prepare.targets
index 214b1f78d..2783c8214 100644
--- a/build/Prepare.targets
+++ b/build/Prepare.targets
@@ -4,7 +4,7 @@
+ DependsOnTargets="Init;DownloadHostAndSharedFxArtifacts;RestoreSrcPackages;RestoreToolsPackages;IsolateArtifactsFromDirectoryBuildFiles;CreatePropsForNextStage" />
+
+
+
@@ -31,7 +39,7 @@
%(_DownloadAndExtractItem.OverwriteDestination)True
-
+
@@ -54,7 +62,7 @@
-
@@ -79,7 +87,7 @@
-
@@ -98,4 +106,39 @@
+
+
+
+
+
+
+
+
+<Project>
+ <PropertyGroup>
+ <PreviousStageDirectory>$(OutputDirectory)</PreviousStageDirectory>
+ <PreviousStageDotnet>$(DotnetInOutputDirectory)</PreviousStageDotnet>
+ <CliOuterBuildStage>$(CliBuildStage)</CliOuterBuildStage>
+ </PropertyGroup>
+</Project>
+
+
+
+ $([System.IO.File]::ReadAllText($(NextStagePropsPath)))
+
+
+ false
+ true
+
+
+
+
+
+
diff --git a/build/Publish.targets b/build/Publish.targets
index 9e911318c..b7dcf3b17 100644
--- a/build/Publish.targets
+++ b/build/Publish.targets
@@ -7,16 +7,25 @@
-
+
+
+
+ Condition=" '$(PublishNativeInstallers)' == 'true' "/>
-
+
@@ -76,4 +85,4 @@
ContainerName="$(ArtifactContainerName)"
Items="@(CliVersionBadgeToUpload)" />
-
\ No newline at end of file
+
diff --git a/build/RestoreDependency.proj b/build/RestoreDependency.proj
index 142f5e929..19f209ce0 100644
--- a/build/RestoreDependency.proj
+++ b/build/RestoreDependency.proj
@@ -33,7 +33,7 @@
-
diff --git a/build/SandBoxAndPackage.proj b/build/SandBoxAndPackage.proj
new file mode 100644
index 000000000..26b2b4b0f
--- /dev/null
+++ b/build/SandBoxAndPackage.proj
@@ -0,0 +1,79 @@
+
+
+
+
+
+ bin/WorkingCopy
+ $(SandBoxFolderName)/RelativeSandBoxPackageOutputFolder
+ $(RepoRoot)/$(SandBoxFolderName)/$(LinuxDistrosNeedNativeInstaller)
+ .nuget
+ bin/2
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ $(SandBoxRepoRoot)/build.sh
+ $(CommandToInvokeBuildScriptInDockerToPackageInSandBox) --configuration $(BuildConfiguration)
+ $(CommandToInvokeBuildScriptInDockerToPackageInSandBox) --docker $(DockerFolder)
+ $(CommandToInvokeBuildScriptInDockerToPackageInSandBox) --skip-prereqs
+ $(CommandToInvokeBuildScriptInDockerToPackageInSandBox) /target:GenerateInstallersAndCopyOutOfSandBox
+ $(CommandToInvokeBuildScriptInDockerToPackageInSandBox) /p:RelativeSandBoxPackageOutputFolder=$(RelativeSandBoxPackageOutputFolder)
+ 0
+ 2>&1
+
+
+
+
+
+
+
+ true
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/build/SandBoxAndPackageInParallel.proj b/build/SandBoxAndPackageInParallel.proj
new file mode 100644
index 000000000..5ec1930f5
--- /dev/null
+++ b/build/SandBoxAndPackageInParallel.proj
@@ -0,0 +1,17 @@
+
+
+
+
+
+
+
+
+
diff --git a/build/SetupPreviousStage.props b/build/SetupPreviousStage.props
new file mode 100644
index 000000000..7545eddc7
--- /dev/null
+++ b/build/SetupPreviousStage.props
@@ -0,0 +1,13 @@
+
+
+ $(RepoRoot)/.dotnet_stage0/$(Architecture)
+ $(PreviousStageDirectory)/dotnet$(ExeExtension)
+
+
+
+
+
+ False
+ True
+
+
diff --git a/build/Signing.proj b/build/Signing.proj
index d3eebb140..da686886a 100644
--- a/build/Signing.proj
+++ b/build/Signing.proj
@@ -1,9 +1,15 @@
+
+
+
+ true
+
+
+
-
-
@@ -13,10 +19,6 @@
- $(RepoRoot)/artifacts/$(Rid)
- $(BaseOutputDirectory)/stage2
- $(BaseOutputDirectory)/stage2compilation
- $(BaseOutputDirectory)/packages$(BaseOutputDirectory)/intermediate/MSBuildExtensionsLayout/MSBuildSdkResolver
-
+ $(InternalCertificateId)
@@ -85,9 +84,6 @@
-
- $(SdkResolverOutputDirectory)
- $(InternalCertificateId)
@@ -98,9 +94,6 @@
-
- $(PackagesDirectory)
- $(InternalCertificateId)
@@ -114,9 +107,6 @@
-
- $(PackagesDirectory)
- $(InternalCertificateId)
@@ -127,9 +117,6 @@
-
- $(PackagesDirectory)
- $(InternalCertificateId)
diff --git a/build/Stage0.props b/build/Stage0.props
deleted file mode 100644
index e5a6a0b50..000000000
--- a/build/Stage0.props
+++ /dev/null
@@ -1,9 +0,0 @@
-
-
- $(RepoRoot)/.dotnet_stage0/$(Architecture)
- $(RepoRoot)/.dotnet_stage0PJ/$(Architecture)
- $(Stage0Directory)/dotnet$(ExeExtension)
- False
- True
-
-
diff --git a/build/Test.targets b/build/Test.targets
index 0b8bc0620..388a2e1fe 100644
--- a/build/Test.targets
+++ b/build/Test.targets
@@ -12,24 +12,21 @@
$(TestOutputDir)/results/
-
-
-
-
-
- @(TestTaskEnvironmentVariables)
-
-
+ DependsOnTargets="TestsForBuildItself;BuildTests;">
+
+
+
CLIBuildDll=$(CLIBuildDll);
Configuration=$(Configuration);
- EnvironmentVariables=$(RunTestEnvironmentVariables);
+ TestArtifactsDir=$(TestArtifactsDir);
+ TestPackagesDir=$(TestPackagesDir);
+ PreviousStageProps=$(NextStagePropsPath);
TestProject=%(TestProjects.Identity);
TestResultXmlDir=$(TestResultXmlDir);
ToolPath=$(OutputDirectory);
@@ -38,35 +35,6 @@
-
-
-
- $(OutputDirectory)/shared/Microsoft.NETCore.App/$(SharedFrameworkStableVersion)
- $(Stage2WithBackwardsCompatibleRuntimesOutputDirectory)/shared/Microsoft.NETCore.App/$(SharedFrameworkStableVersion)
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+ ProjectPath=""$(TestDirectory)/Microsoft.DotNet.Cli.Tests.sln""
+ AdditionalParameters="/p:PreviousStageProps=$(NextStagePropsPath)" />
@@ -109,19 +73,26 @@
+ ProjectPath="%(TestPackageProject.ProjectPath)"
+ AdditionalParameters="/p:RestoreAdditionalProjectSources=$(TestOutputDir)/packages /p:PreviousStageProps=$(NextStagePropsPath)"
+ />
+ MsbuildArgs="%(TestPackageProject.MsbuildArgs) /p:SdkNuGetVersion=$(SdkNugetVersion) /p:RestoreAdditionalProjectSources=$(TestOutputDir)/packages /p:PreviousStageProps=$(NextStagePropsPath)" />
+
+
+
+
+ ToolPath="$(PreviousStageDirectory)" />
diff --git a/build/Version.props b/build/Version.props
index f0c026f0a..6e311dd4d 100644
--- a/build/Version.props
+++ b/build/Version.props
@@ -1,9 +1,9 @@
-
+2
- 1
- 2
- preview
+ 2
+ 0
+ preview1$(VersionMajor).$(VersionMinor).$(VersionPatch)-$(ReleaseSuffix)$(VersionMajor).$(VersionMinor).$(VersionPatch).$(CommitCount)
diff --git a/build/VersionBadge.props b/build/VersionBadge.props
deleted file mode 100644
index 0dab52fb8..000000000
--- a/build/VersionBadge.props
+++ /dev/null
@@ -1,14 +0,0 @@
-
-
- $(OSName)_$(Architecture)
- debian_8_x64
- rhel_7_x64
- ubuntu_14_04_x64
- ubuntu_16_04_x64
- ubuntu_16_10_x64
- linux_x64
-
- $(BaseOutputDirectory)/$(VersionBadgeMoniker)_$(Configuration)_version_badge.svg
- $(BaseOutputDirectory)/$(VersionBadgeMoniker)_$(Configuration)_coherent_badge.svg
-
-
diff --git a/build/buildpipeline/security/DotNet-CLI-Security-Windows.json b/build/buildpipeline/security/DotNet-CLI-Security-Windows.json
new file mode 100644
index 000000000..74362e939
--- /dev/null
+++ b/build/buildpipeline/security/DotNet-CLI-Security-Windows.json
@@ -0,0 +1,764 @@
+{
+ "build": [
+ {
+ "enabled": true,
+ "continueOnError": false,
+ "alwaysRun": false,
+ "displayName": "Workaround for BuildTools - Clone Core-Setup",
+ "timeoutInMinutes": 0,
+ "condition": "succeeded()",
+ "task": {
+ "id": "d9bafed4-0b18-4f58-968d-86655b4d2ce9",
+ "versionSpec": "1.*",
+ "definitionType": "task"
+ },
+ "inputs": {
+ "filename": "$(PB_Git)",
+ "arguments": "clone $(CoreSetupUrl) core-setup",
+ "workingFolder": "$(Build.SourcesDirectory)",
+ "failOnStandardError": "false"
+ }
+ },
+ {
+ "enabled": true,
+ "continueOnError": false,
+ "alwaysRun": false,
+ "displayName": "Workaround for BuildTools - Checkout Core-Setup master",
+ "timeoutInMinutes": 0,
+ "condition": "succeeded()",
+ "task": {
+ "id": "d9bafed4-0b18-4f58-968d-86655b4d2ce9",
+ "versionSpec": "1.*",
+ "definitionType": "task"
+ },
+ "inputs": {
+ "filename": "$(PB_Git)",
+ "arguments": "checkout master",
+ "workingFolder": "$(build.SourcesDirectory)\\core-setup",
+ "failOnStandardError": "false"
+ }
+ },
+ {
+ "enabled": true,
+ "continueOnError": false,
+ "alwaysRun": false,
+ "displayName": "Workaround for BuildTools - Run init-tools.cmd",
+ "timeoutInMinutes": 0,
+ "condition": "succeeded()",
+ "task": {
+ "id": "d9bafed4-0b18-4f58-968d-86655b4d2ce9",
+ "versionSpec": "1.*",
+ "definitionType": "task"
+ },
+ "inputs": {
+ "filename": "init-tools.cmd",
+ "arguments": "",
+ "workingFolder": "$(Build.SourcesDirectory)\\core-setup",
+ "failOnStandardError": "false"
+ }
+ },
+ {
+ "enabled": true,
+ "continueOnError": true,
+ "alwaysRun": false,
+ "displayName": "Workaround for BuildTools - Delete CLI dir.props",
+ "timeoutInMinutes": 0,
+ "condition": "succeeded()",
+ "task": {
+ "id": "e213ff0f-5d5c-4791-802d-52ea3e7be1f1",
+ "versionSpec": "1.*",
+ "definitionType": "task"
+ },
+ "inputs": {
+ "scriptType": "inlineScript",
+ "scriptName": "",
+ "arguments": "-path \"$(Build.SourcesDirectory)\"",
+ "workingFolder": "$(Build.SourcesDirectory)",
+ "inlineScript": "param ($path)\ngci \"$path\\dir.props\" | Remove-Item -Force",
+ "failOnStandardError": "true"
+ }
+ },
+ {
+ "enabled": true,
+ "continueOnError": true,
+ "alwaysRun": false,
+ "displayName": "Download blobs from container $(PB_CloudDropAccountName)",
+ "timeoutInMinutes": 0,
+ "condition": "succeeded()",
+ "task": {
+ "id": "c6c4c611-aa2e-4a33-b606-5eaba2196824",
+ "versionSpec": "1.*",
+ "definitionType": "task"
+ },
+ "inputs": {
+ "solution": "$(Build.SourcesDirectory)\\build\\buildpipeline\\security\\syncAzure.proj",
+ "msbuildLocationMethod": "version",
+ "msbuildVersion": "latest",
+ "msbuildArchitecture": "x64",
+ "msbuildLocation": "",
+ "platform": "x64",
+ "configuration": "$(BuildConfiguration)",
+ "msbuildArguments": "/p:AzureAccount=\"$(PB_CloudDropAccountName)\" /p:AzureToken=\"$(PB_CloudDropAccessToken)\" /p:BlobName=\"$(PB_BlobNameFilter)\" /verbosity:diag",
+ "clean": "false",
+ "maximumCpuCount": "false",
+ "restoreNugetPackages": "false",
+ "logProjectEvents": "false",
+ "createLogFile": "false"
+ }
+ },
+ {
+ "enabled": true,
+ "continueOnError": true,
+ "alwaysRun": false,
+ "displayName": "Copy downloaded packages to security folder",
+ "timeoutInMinutes": 0,
+ "condition": "succeeded()",
+ "refName": "PowerShell_23",
+ "task": {
+ "id": "e213ff0f-5d5c-4791-802d-52ea3e7be1f1",
+ "versionSpec": "1.*",
+ "definitionType": "task"
+ },
+ "inputs": {
+ "scriptType": "inlineScript",
+ "scriptName": "",
+ "arguments": "-SrcDir \"$(Build.SourcesDirectory)\"",
+ "workingFolder": "$(Build.SourcesDirectory)",
+ "inlineScript": "param($SrcDir)\n$secDir = Join-Path \"$SrcDir\" \"security\"\n$pkgDir = \"$SrcDir\\core-setup\\packages\\AzureTransfer\"\nCopy-Item \"$pkgDir \" \"$secDir\" -Force -Recurse\n",
+ "failOnStandardError": "true"
+ }
+ },
+ {
+ "enabled": true,
+ "continueOnError": true,
+ "alwaysRun": false,
+ "displayName": "Extract downloaded packages",
+ "timeoutInMinutes": 0,
+ "condition": "succeeded()",
+ "task": {
+ "id": "e213ff0f-5d5c-4791-802d-52ea3e7be1f1",
+ "versionSpec": "1.*",
+ "definitionType": "task"
+ },
+ "inputs": {
+ "scriptType": "inlineScript",
+ "scriptName": "",
+ "arguments": "-SrcDir \"$(Build.SourcesDirectory)\"",
+ "workingFolder": "$(Build.SourcesDirectory)",
+ "inlineScript": "param($SrcDir)\n$secDir = Join-Path \"$SrcDir\" \"security\"\ngci \"$secDir\\*.zip\" | % {\n$dstDir = Join-Path \"$secDir\" $($_.BaseName)\nExpand-Archive -Path $($_.FullName) -DestinationPath \"$dstDir\" -Force\nWrite-Host \"Expanded: $($_.FullName)\"\nRemove-Item $_.FullName -Force\n}\n",
+ "failOnStandardError": "true"
+ }
+ },
+ {
+ "enabled": true,
+ "continueOnError": true,
+ "alwaysRun": false,
+ "displayName": "List all files",
+ "timeoutInMinutes": 0,
+ "condition": "succeeded()",
+ "task": {
+ "id": "e213ff0f-5d5c-4791-802d-52ea3e7be1f1",
+ "versionSpec": "1.*",
+ "definitionType": "task"
+ },
+ "inputs": {
+ "scriptType": "inlineScript",
+ "scriptName": "",
+ "arguments": "$(Build.SourcesDirectory)",
+ "workingFolder": "$(Build.SourcesDirectory)",
+ "inlineScript": "param($SrcDir)\n$fileCount = 0\ngci $SrcDir -recurse | % {\nWrite-Host $($_.FullName)\n$fileCount += 1\n}\nWrite-Host \"File Count: $fileCount\"\n",
+ "failOnStandardError": "true"
+ }
+ },
+ {
+ "environment": {},
+ "enabled": true,
+ "continueOnError": true,
+ "alwaysRun": false,
+ "displayName": "Remove non-CLI folders",
+ "timeoutInMinutes": 0,
+ "condition": "succeeded()",
+ "refName": "PowerShell_22",
+ "task": {
+ "id": "e213ff0f-5d5c-4791-802d-52ea3e7be1f1",
+ "versionSpec": "1.*",
+ "definitionType": "task"
+ },
+ "inputs": {
+ "scriptType": "inlineScript",
+ "scriptName": "",
+ "arguments": "-SrcDir \"$(Build.SourcesDirectory)\"",
+ "workingFolder": "$(Build.SourcesDirectory)",
+ "inlineScript": "param($SrcDir)\n$secDir = Join-Path \"$SrcDir\" \"security\"\n\ngci \"$secDir\" | where {$_.PSIsContainer} | % {\n gci $_.FullName | where {$_.PSIsContainer} | % {\n if ($_.BaseName -ine \"sdk\" -and $_.BaseName -notmatch \"symbols\")\n {\n Remove-Item $_.FullName -Recurse -Force -ErrorAction Continue\n Write-Host \"Removed $($_.FullName)\"\n }\n }\n}",
+ "failOnStandardError": "false"
+ }
+ },
+ {
+ "enabled": true,
+ "continueOnError": true,
+ "alwaysRun": false,
+ "displayName": "Workaround for long path - DELETE files with path length greater than or equal to 240 characters",
+ "timeoutInMinutes": 0,
+ "condition": "succeeded()",
+ "refName": "Task_10",
+ "task": {
+ "id": "e213ff0f-5d5c-4791-802d-52ea3e7be1f1",
+ "versionSpec": "1.*",
+ "definitionType": "task"
+ },
+ "inputs": {
+ "scriptType": "inlineScript",
+ "scriptName": "",
+ "arguments": "-SrcDir \"$(Build.SourcesDirectory)\"",
+ "workingFolder": "$(Build.SourcesDirectory)",
+ "inlineScript": "param($SrcDir)\n$longPath = New-Object System.Collections.ArrayList\ngci \"$SrcDir\\*\" -recurse | where {!$_.PSIsContainer} | % {\nif ($($_.FullName.Length) -ge 240)\n{\n$longPath.Add($($_.Directory.FullName)) | Out-Null\n}\n}\n$longPath | % {\nStart-Process \"cmd\" -ArgumentList \"/c rd /S /Q $_\" -Wait\nWrite-Host \"DELETED $_\"\n}\n",
+ "failOnStandardError": "false"
+ }
+ },
+ {
+ "enabled": true,
+ "continueOnError": true,
+ "alwaysRun": false,
+ "displayName": "List all files - post delete",
+ "timeoutInMinutes": 0,
+ "condition": "succeeded()",
+ "refName": "Task_11",
+ "task": {
+ "id": "e213ff0f-5d5c-4791-802d-52ea3e7be1f1",
+ "versionSpec": "1.*",
+ "definitionType": "task"
+ },
+ "inputs": {
+ "scriptType": "inlineScript",
+ "scriptName": "",
+ "arguments": "$(Build.SourcesDirectory)",
+ "workingFolder": "$(Build.SourcesDirectory)",
+ "inlineScript": "param($SrcDir)\n$fileCount = 0\ngci $SrcDir -recurse | % {\nWrite-Host $($_.FullName)\n$fileCount += 1\n}\nWrite-Host \"File Count: $fileCount\"\n",
+ "failOnStandardError": "true"
+ }
+ },
+ {
+ "environment": {},
+ "enabled": true,
+ "continueOnError": false,
+ "alwaysRun": false,
+ "displayName": "Get latest version info",
+ "timeoutInMinutes": 0,
+ "condition": "succeeded()",
+ "refName": "PowerShell23",
+ "task": {
+ "id": "e213ff0f-5d5c-4791-802d-52ea3e7be1f1",
+ "versionSpec": "1.*",
+ "definitionType": "task"
+ },
+ "inputs": {
+ "scriptType": "filePath",
+ "scriptName": "$(Build.SourcesDirectory)\\build\\buildpipeline\\security\\Get-LatestVersion.ps1",
+ "arguments": "-Branch \"$(CodeBase)\"",
+ "workingFolder": "",
+ "failOnStandardError": "true"
+ }
+ },
+ {
+ "environment": {},
+ "enabled": true,
+ "continueOnError": false,
+ "alwaysRun": false,
+ "displayName": "Workaround for long package Id",
+ "timeoutInMinutes": 0,
+ "condition": "succeeded()",
+ "refName": "PowerShell24",
+ "task": {
+ "id": "e213ff0f-5d5c-4791-802d-52ea3e7be1f1",
+ "versionSpec": "1.*",
+ "definitionType": "task"
+ },
+ "inputs": {
+ "scriptType": "inlineScript",
+ "scriptName": "",
+ "arguments": "-packageId $(CliLatestPackageId)",
+ "workingFolder": "",
+ "inlineScript": "param($packageId)\n\nif ($packageId.Length -ge 16)\n{\n Write-Host \"Build number for security build is the package Id. TSA has a limit of 16 characters for build number. Since package Id is greater than 16 characters, build number will be set to current date time in yyyymmddHHMMss format.\"\n $CliLatestPackageId = Get-Date -Format yyyymmddHHMMss\n Write-Host \"##vso[task.setvariable variable=CliLatestPackageId;]$CliLatestPackageId\"\n}",
+ "failOnStandardError": "true"
+ }
+ },
+ {
+ "enabled": true,
+ "continueOnError": true,
+ "alwaysRun": false,
+ "displayName": "Run BinSkim ",
+ "timeoutInMinutes": 0,
+ "condition": "succeeded()",
+ "task": {
+ "id": "3056813a-40e9-4b2f-8f6b-612d1bc4e045",
+ "versionSpec": "3.*",
+ "definitionType": "task"
+ },
+ "inputs": {
+ "InputType": "CommandLine",
+ "arguments": "analyze $(Build.SourcesDirectory)\\security\\*.dll $(Build.SourcesDirectory)\\security\\*.exe --recurse --sympath $(Build.SourcesDirectory)\\security\\*.pdb --verbose --statistics",
+ "Function": "analyze",
+ "AnalyzeTarget": "$(Build.ArtifactStagingDirectory)",
+ "AnalyzeSymPath": "",
+ "AnalyzeConfigPath": "default",
+ "AnalyzePluginPath": "",
+ "AnalyzeRecurse": "true",
+ "AnalyzeVerbose": "true",
+ "AnalyzeHashes": "true",
+ "AnalyzeStatistics": "false",
+ "AnalyzeEnvironment": "false",
+ "ExportRulesOutputType": "SARIF",
+ "DumpTarget": "$(Build.ArtifactStagingDirectory)",
+ "DumpRecurse": "true",
+ "DumpVerbose": "true",
+ "toolVersion": "Latest"
+ }
+ },
+ {
+ "enabled": true,
+ "continueOnError": true,
+ "alwaysRun": false,
+ "displayName": "Run APIScan",
+ "timeoutInMinutes": 0,
+ "condition": "succeeded()",
+ "task": {
+ "id": "9adea2b1-3752-438c-80c6-a6f0a812abdd",
+ "versionSpec": "1.*",
+ "definitionType": "task"
+ },
+ "inputs": {
+ "targetMode": "binarysym",
+ "softwareFolder": "$(Build.SourcesDirectory)\\security",
+ "mpdFolder": "",
+ "softwareName": "CLI",
+ "softwareVersionNum": "$(CliLatestPackageId)",
+ "softwareBuildNum": "$(CliLatestPackageId)",
+ "modeType": "prerelease",
+ "noCopySymbols": "false",
+ "noCopyBinaries": "false",
+ "noDecompress": "true",
+ "exclusionList": "",
+ "email": "",
+ "symbolsFolder": "$(Build.SourcesDirectory)\\security",
+ "preBbtBinariesFolder": "",
+ "preBbtSymbolsFolder": "",
+ "isLargeApp": "false",
+ "analyzerTimeout": "00:00:00",
+ "preserveTempFiles": "false",
+ "toolVersion": "Latest"
+ }
+ },
+ {
+ "enabled": true,
+ "continueOnError": false,
+ "alwaysRun": false,
+ "displayName": "Checkout CLI at SHA listed in latest.version",
+ "timeoutInMinutes": 0,
+ "condition": "succeeded()",
+ "task": {
+ "id": "e213ff0f-5d5c-4791-802d-52ea3e7be1f1",
+ "versionSpec": "1.*",
+ "definitionType": "task"
+ },
+ "inputs": {
+ "scriptType": "inlineScript",
+ "scriptName": "",
+ "arguments": "-sha \"$(CliLatestCommitSha)\" -git \"$(PB_Git)\"",
+ "workingFolder": "$(Build.SourcesDirectory)",
+ "inlineScript": "param($sha, $git)\n\nStart-Process \"$git\" -ArgumentList \"clean -df\" -Wait -Verbose -ErrorAction Stop\nStart-Process \"$git\" -ArgumentList \"checkout $sha\" -Wait -Verbose -ErrorAction Stop\nWrite-Host \"Checked out at $sha\"\n",
+ "failOnStandardError": "true"
+ }
+ },
+ {
+ "enabled": true,
+ "continueOnError": true,
+ "alwaysRun": false,
+ "displayName": "Run Core-Setup clean.cmd",
+ "timeoutInMinutes": 0,
+ "condition": "succeeded()",
+ "task": {
+ "id": "d9bafed4-0b18-4f58-968d-86655b4d2ce9",
+ "versionSpec": "1.*",
+ "definitionType": "task"
+ },
+ "inputs": {
+ "filename": "clean.cmd",
+ "arguments": "-all",
+ "workingFolder": "$(Build.SourcesDirectory)\\core-setup",
+ "failOnStandardError": "false"
+ }
+ },
+ {
+ "enabled": true,
+ "continueOnError": true,
+ "alwaysRun": false,
+ "displayName": "Delete Core-Setup folder",
+ "timeoutInMinutes": 0,
+ "condition": "succeeded()",
+ "task": {
+ "id": "e213ff0f-5d5c-4791-802d-52ea3e7be1f1",
+ "versionSpec": "1.*",
+ "definitionType": "task"
+ },
+ "inputs": {
+ "scriptType": "inlineScript",
+ "scriptName": "",
+ "arguments": "-path \"$(Build.SourcesDirectory)\\core-setup\"",
+ "workingFolder": "",
+ "inlineScript": "param ($path)\nRemove-Item \"$path\" -Force -Recurse -ErrorAction Continue\n",
+ "failOnStandardError": "true"
+ }
+ },
+ {
+ "enabled": true,
+ "continueOnError": true,
+ "alwaysRun": false,
+ "displayName": "List all files - post checkout",
+ "timeoutInMinutes": 0,
+ "condition": "succeeded()",
+ "task": {
+ "id": "e213ff0f-5d5c-4791-802d-52ea3e7be1f1",
+ "versionSpec": "1.*",
+ "definitionType": "task"
+ },
+ "inputs": {
+ "scriptType": "inlineScript",
+ "scriptName": "",
+ "arguments": "$(Build.SourcesDirectory)",
+ "workingFolder": "$(Build.SourcesDirectory)",
+ "inlineScript": "param($SrcDir)\n$fileCount = 0\ngci $SrcDir -recurse | % {\nWrite-Host $($_.FullName)\n$fileCount += 1\n}\nWrite-Host \"File Count: $fileCount\"\n",
+ "failOnStandardError": "true"
+ }
+ },
+ {
+ "enabled": true,
+ "continueOnError": true,
+ "alwaysRun": false,
+ "displayName": "Run CredScan",
+ "timeoutInMinutes": 0,
+ "condition": "succeeded()",
+ "task": {
+ "id": "ea576cd4-c61f-48f8-97e7-a3cb07b90a6f",
+ "versionSpec": "2.*",
+ "definitionType": "task"
+ },
+ "inputs": {
+ "outputFormat": "pre",
+ "toolVersion": "Latest",
+ "scanFolder": "$(Build.SourcesDirectory)",
+ "searchersFileType": "Default",
+ "searchersFile": "",
+ "suppressionsFile": "",
+ "suppressAsError": "false",
+ "batchSize": ""
+ }
+ },
+ {
+ "enabled": true,
+ "continueOnError": true,
+ "alwaysRun": false,
+ "displayName": "Run PoliCheck",
+ "timeoutInMinutes": 0,
+ "condition": "succeeded()",
+ "task": {
+ "id": "d785890c-0d0d-46bd-8167-8fa9d49990c7",
+ "versionSpec": "1.*",
+ "definitionType": "task"
+ },
+ "inputs": {
+ "inputType": "Basic",
+ "cmdLineArgs": "/F:$(Build.SourcesDirectory) /T:9 /O:PoliCheck.xml",
+ "targetType": "F",
+ "targetArgument": "$(Build.SourcesDirectory)",
+ "importEx": "0",
+ "termTypeT": "0029a9",
+ "termTypeTCustom": "9",
+ "termTypeK": "",
+ "termTypeL": "",
+ "EXGT": "false",
+ "result": "PoliCheck.xml",
+ "optionsFC": "1",
+ "optionsXS": "1",
+ "optionsCTGLEN": "",
+ "optionsSEV": "",
+ "optionsPE": "",
+ "optionsHMENABLE": "",
+ "optionsHPATH": "",
+ "optionsHVER": "",
+ "optionsRulesDBPath": "",
+ "optionsRule": "",
+ "optionsXCLASS": "",
+ "optionsTASKNAME": "",
+ "optionsWORKINGDIRECTORY": "",
+ "optionsFTPATH": "",
+ "optionsD": "",
+ "optionsB1": "",
+ "optionsB2": "",
+ "optionsB3": "",
+ "optionsOCDB": "",
+ "toolVersion": "Latest"
+ }
+ },
+ {
+ "enabled": true,
+ "continueOnError": true,
+ "alwaysRun": false,
+ "displayName": "Post Analysis",
+ "timeoutInMinutes": 0,
+ "condition": "succeeded()",
+ "task": {
+ "id": "f5679091-e6da-4974-a8dc-0eec03a8ea63",
+ "versionSpec": "1.*",
+ "definitionType": "task"
+ },
+ "inputs": {
+ "APIScan": "true",
+ "BinScope": "false",
+ "BinSkim": "true",
+ "BinSkimBreakOn": "Error",
+ "CredScan": "true",
+ "FortifySCA": "false",
+ "FxCop": "false",
+ "FxCopBreakOn": "ErrorAbove",
+ "ModernCop": "false",
+ "ModernCopBreakOn": "Error",
+ "PoliCheck": "true",
+ "PoliCheckBreakOn": "Severity1",
+ "SDLNativeRules": "false",
+ "TSLint": "false",
+ "TSLintBreakOn": "Error"
+ }
+ },
+ {
+ "enabled": true,
+ "continueOnError": true,
+ "alwaysRun": false,
+ "displayName": "Publish Security Analysis Logs",
+ "timeoutInMinutes": 0,
+ "condition": "succeeded()",
+ "task": {
+ "id": "4096c760-3a8a-435d-9689-88c0311bbc0e",
+ "versionSpec": "2.*",
+ "definitionType": "task"
+ },
+ "inputs": {
+ "ArtifactName": "CodeAnalysisLogs",
+ "ArtifactType": "Container",
+ "TargetPath": "\\\\my\\share\\$(Build.DefinitionName)\\$(Build.BuildNumber)",
+ "RvName": "",
+ "ProductComponentName": "",
+ "ProductVersionNumber": "",
+ "PlatformName": "",
+ "SDLToolName": "",
+ "SDLToolResultFile": ""
+ }
+ },
+ {
+ "enabled": true,
+ "continueOnError": true,
+ "alwaysRun": false,
+ "displayName": "TSA upload to Codebase: DotNet-CLI-Trusted_$(CodeBase) Stamp: Azure",
+ "timeoutInMinutes": 0,
+ "condition": "succeeded()",
+ "task": {
+ "id": "3da26988-bb64-4a23-8f06-45531d297dae",
+ "versionSpec": "1.*",
+ "definitionType": "task"
+ },
+ "inputs": {
+ "codebase": "NewOrUpdate",
+ "tsaStamp": "Azure",
+ "tsaWebApiUrl": "$(TSAStamp)",
+ "codeBaseName": "DotNet-CLI-Trusted_$(CodeBase)",
+ "notificationAlias": "$(NotificationAlias)",
+ "codeBaseAdmins": "NORTHAMERICA\\raeda",
+ "instanceUrlAzure": "MSAZURE",
+ "instanceUrlBing": "",
+ "instanceUrlCarbon": "",
+ "instanceUrlDevDiv": "DEVDIV",
+ "instanceUrlSkype": "",
+ "instanceUrlTsa": "",
+ "instanceUrlPpe": "",
+ "projectNameDAIPVSTF": "",
+ "projectNameDYNAMICSCRM": "",
+ "projectNameMSAZURE": "One",
+ "projectNameMSDYENG": "",
+ "projectNameMSECG": "",
+ "projectNameIDENTITYDIVISION": "Code Scan - TSA",
+ "projectNameVSTFRD": "",
+ "projectNameMSASG": "",
+ "projectNameMICROSOFTVSTS": "",
+ "projectNameMSDATA": "",
+ "projectNameMSENG": "",
+ "projectNameDEVDIV": "DevDiv",
+ "projectNameSKYPETEST2": "",
+ "projectNameONEDRIVE": "",
+ "projectNameSQLBUVSTS": "",
+ "projectNamePOWERBI": "",
+ "projectNameAZUREVSTFPPE": "",
+ "projectNameSKYPE": "",
+ "projectNameDOMOREEXP": "",
+ "projectNameSQLBUVSTSTEST": "",
+ "areaPath": "One\\DevDiv\\DotNetCore",
+ "iterationPath": "One",
+ "uploadAPIScan": "true",
+ "uploadBinScope": "false",
+ "uploadBinSkim": "true",
+ "uploadCredScan": "true",
+ "uploadFortifySCA": "false",
+ "uploadFxCop": "false",
+ "uploadModernCop": "false",
+ "uploadPoliCheck": "true",
+ "uploadPREfast": "false",
+ "validateToolOutput": "Warning",
+ "validateCompatibility": "Error",
+ "uploadAsync": "true"
+ }
+ }
+ ],
+ "options": [
+ {
+ "enabled": false,
+ "definition": {
+ "id": "5bc3cfb7-6b54-4a4b-b5d2-a3905949f8a6"
+ },
+ "inputs": {}
+ },
+ {
+ "enabled": false,
+ "definition": {
+ "id": "7c555368-ca64-4199-add6-9ebaf0b0137d"
+ },
+ "inputs": {
+ "multipliers": "[]",
+ "parallel": "false",
+ "continueOnError": "true",
+ "additionalFields": "{}"
+ }
+ },
+ {
+ "enabled": false,
+ "definition": {
+ "id": "a9db38f9-9fdc-478c-b0f9-464221e58316"
+ },
+ "inputs": {
+ "workItemType": "234347",
+ "assignToRequestor": "true",
+ "additionalFields": "{}"
+ }
+ },
+ {
+ "enabled": false,
+ "definition": {
+ "id": "57578776-4c22-4526-aeb0-86b6da17ee9c"
+ },
+ "inputs": {}
+ },
+ {
+ "enabled": false,
+ "definition": {
+ "id": "5d58cc01-7c75-450c-be18-a388ddb129ec"
+ },
+ "inputs": {
+ "branchFilters": "[\"+refs/heads/*\"]",
+ "additionalFields": "{}"
+ }
+ }
+ ],
+ "variables": {
+ "system.debug": {
+ "value": "false"
+ }
+ },
+ "demands": [
+ "Agent.OS -equals windows_nt",
+ "msbuild"
+ ],
+ "retentionRules": [
+ {
+ "branches": [
+ "+refs/heads/*"
+ ],
+ "artifacts": [
+ "build.SourceLabel"
+ ],
+ "artifactTypesToDelete": [],
+ "daysToKeep": 10,
+ "minimumToKeep": 1,
+ "deleteBuildRecord": true,
+ "deleteTestResults": true
+ }
+ ],
+ "_links": {
+ "self": {
+ "href": "https://devdiv.visualstudio.com/0bdbc590-a062-4c3f-b0f6-9383f67865ee/_apis/build/Definitions/6661"
+ },
+ "web": {
+ "href": "https://devdiv.visualstudio.com/_permalink/_build/index?collectionId=011b8bdf-6d56-4f87-be0d-0092136884d9&projectId=0bdbc590-a062-4c3f-b0f6-9383f67865ee&definitionId=6661"
+ },
+ "editor": {
+ "href": "https://devdiv.visualstudio.com/_permalink/_build/definitionEditor?collectionId=011b8bdf-6d56-4f87-be0d-0092136884d9&projectId=0bdbc590-a062-4c3f-b0f6-9383f67865ee&definitionId=6661"
+ },
+ "badge": {
+ "href": "https://devdiv.visualstudio.com/_apis/public/build/definitions/0bdbc590-a062-4c3f-b0f6-9383f67865ee/6661/badge"
+ }
+ },
+ "buildNumberFormat": "$(date:yyyyMMdd)$(rev:-rr)",
+ "jobAuthorizationScope": 1,
+ "jobTimeoutInMinutes": 600,
+ "jobCancelTimeoutInMinutes": 5,
+ "badgeEnabled": true,
+ "repository": {
+ "properties": {
+ "cleanOptions": "3",
+ "labelSources": "0",
+ "labelSourcesFormat": "$(build.buildNumber)",
+ "reportBuildStatus": "true",
+ "gitLfsSupport": "false",
+ "skipSyncSource": "false",
+ "checkoutNestedSubmodules": "false",
+ "fetchDepth": "0"
+ },
+ "id": "ceac4423-53f8-4c97-bc62-173630412581",
+ "type": "TfsGit",
+ "name": "DotNet-Cli-Trusted",
+ "url": "https://devdiv.visualstudio.com/DevDiv/_git/DotNet-Cli-Trusted",
+ "defaultBranch": "refs/heads/master",
+ "clean": "true",
+ "checkoutSubmodules": false
+ },
+ "processParameters": {},
+ "quality": "definition",
+ "authoredBy": {
+ "id": "9d5fdf9f-36b6-4d0c-a12e-2737a673af94",
+ "displayName": "Ravi Eda",
+ "uniqueName": "raeda@microsoft.com",
+ "url": "https://app.vssps.visualstudio.com/Aa44b2c06-f247-425c-8464-4a0676af910a/_apis/Identities/9d5fdf9f-36b6-4d0c-a12e-2737a673af94",
+ "imageUrl": "https://devdiv.visualstudio.com/_api/_common/identityImage?id=9d5fdf9f-36b6-4d0c-a12e-2737a673af94"
+ },
+ "queue": {
+ "id": 36,
+ "name": "DotNet-Build",
+ "pool": {
+ "id": 39,
+ "name": "DotNet-Build"
+ }
+ },
+ "id": 6733,
+ "name": "DotNet-CLI-Security-Windows",
+ "url": "https://devdiv.visualstudio.com/0bdbc590-a062-4c3f-b0f6-9383f67865ee/_apis/build/Definitions/6661",
+ "uri": "vstfs:///Build/Definition/6733",
+ "path": "\\",
+ "type": 2,
+ "revision": 6,
+ "createdDate": "2017-06-21T21:58:12.397Z",
+ "project": {
+ "id": "0bdbc590-a062-4c3f-b0f6-9383f67865ee",
+ "name": "DevDiv",
+ "description": "Visual Studio and DevDiv team project for git source code repositories. Work items will be added for Adams, Dev14 work items are tracked in vstfdevdiv. ",
+ "url": "https://devdiv.visualstudio.com/_apis/projects/0bdbc590-a062-4c3f-b0f6-9383f67865ee",
+ "state": "wellFormed",
+ "revision": 418097676,
+ "visibility": 0
+ }
+}
diff --git a/build/buildpipeline/security/Get-LatestVersion.ps1 b/build/buildpipeline/security/Get-LatestVersion.ps1
new file mode 100644
index 000000000..2f921ef3a
--- /dev/null
+++ b/build/buildpipeline/security/Get-LatestVersion.ps1
@@ -0,0 +1,71 @@
+<#
+.SYNOPSIS
+ Retrieves the latest commit SHA and the corresponding package Id for the specified branch of CLI.
+ This retrieval is achieved by downloading the latest.version file, which contains the commit SHA and package Id info.
+ If retrieval succeeds, then the commit is set as a VSTS Task Variable named CliLatestCommitSha, and similarly package Id is set as CliLatestPackageId.
+.PARAMETER $Branch
+ Name of the CLI branch.
+.PARAMETER $Filename
+ Name of the file that contains latest version info i.e. commit SHA and package Id.
+ If not specified, then the default value is latest.version
+.PARAMETER $UrlPrefix
+ URL prefix for $Filename.
+ If not specified, then the default value is https://dotnetcli.blob.core.windows.net/dotnet/Sdk
+#>
+
+param(
+ [Parameter(Mandatory=$true)]
+ [string]$Branch,
+ [string]$Filename="latest.version",
+ [string]$UrlPrefix="https://dotnetcli.blob.core.windows.net/dotnet/Sdk"
+)
+
+function Get-VersionInfo
+{
+ Write-Host "Attempting to retrieve latest version info from $latestVersionUrl"
+ $retries = 3
+ $retryCount = 1
+ $oldEap = $ErrorActionPreference
+
+ while ($retryCount -le $retries)
+ {
+ $ErrorActionPreference = "Stop"
+
+ try
+ {
+ $content = (Invoke-WebRequest -Uri "$latestVersionUrl" -UseBasicParsing).Content
+ return $content.Split([Environment]::NewLine, [System.StringSplitOptions]::RemoveEmptyEntries)
+ }
+ catch
+ {
+ Sleep -Seconds (Get-Random -minimum 3 -maximum 10)
+ Write-Host "Exception occurred while attempting to get latest version info from $latestVersionUrl. $_"
+ Write-Host "Retry $retryCount of $retries"
+ }
+ finally
+ {
+ $ErrorActionPreference = $oldEap
+ }
+
+ $retryCount++
+ }
+}
+
+$latestVersionUrl = "$UrlPrefix/$Branch/$Filename"
+$latestVersionContent = Get-VersionInfo
+
+if ($latestVersionContent -ne $null -and $latestVersionContent.Length -eq 2)
+{
+ $CliLatestCommitSha = $latestVersionContent[0]
+ $CliLatestPackageId = $latestVersionContent[1]
+
+ Write-Host "##vso[task.setvariable variable=CliLatestCommitSha;]$CliLatestCommitSha"
+ Write-Host "##vso[task.setvariable variable=CliLatestPackageId;]$CliLatestPackageId"
+
+ Write-Host "The latest commit SHA in CLI $Branch is $CliLatestCommitSha"
+ Write-Host "The latest package Id in CLI $Branch is $CliLatestPackageId"
+}
+else
+{
+ Write-Error "Unable to get latest version info from $latestVersionUrl"
+}
diff --git a/build/buildpipeline/security/dir.props b/build/buildpipeline/security/dir.props
new file mode 100644
index 000000000..3e28b4a52
--- /dev/null
+++ b/build/buildpipeline/security/dir.props
@@ -0,0 +1,4 @@
+
+
+
+
diff --git a/build/buildpipeline/security/pipeline.json b/build/buildpipeline/security/pipeline.json
new file mode 100644
index 000000000..dbac3626b
--- /dev/null
+++ b/build/buildpipeline/security/pipeline.json
@@ -0,0 +1,22 @@
+{
+ "Repository": "cli",
+ "Definitions": {
+ "Path": ".",
+ "Type": "VSTS",
+ "BaseUrl": "https://devdiv.visualstudio.com/DefaultCollection",
+ "SkipBranchAndVersionOverrides": "false"
+ },
+ "Pipelines": [
+ {
+ "Name": "Security Build for Windows",
+ "Parameters": {
+ "TreatWarningsAsErrors": "false"
+ },
+ "Definitions": [
+ {
+ "Name": "DotNet-CLI-Security-Windows"
+ }
+ ]
+ }
+ ]
+}
diff --git a/build/buildpipeline/security/syncAzure.proj b/build/buildpipeline/security/syncAzure.proj
new file mode 100644
index 000000000..45d7657eb
--- /dev/null
+++ b/build/buildpipeline/security/syncAzure.proj
@@ -0,0 +1,21 @@
+
+
+
+
+
+ $(BuildToolsTaskDesktopDir)Microsoft.DotNet.Build.CloudTestTasks.dll
+ dotnet
+ $(PackagesDir)AzureTransfer
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/build/buildpipeline/security/syncAzure.targets b/build/buildpipeline/security/syncAzure.targets
new file mode 100644
index 000000000..4cc360a11
--- /dev/null
+++ b/build/buildpipeline/security/syncAzure.targets
@@ -0,0 +1,31 @@
+
+
+
+
+
+
+ $(PackagesDir)/AzureTransfer
+
+
+
+
+
+
+
+
+ <_OSFilteredBlobNames Include="@(_BlobList)"
+ Condition="'$(OSGroup)' == 'Windows_NT' AND
+ ('%(_BlobList.Extension)' == '.zip' OR '%(_BlobList.Extension)' == '.exe' OR '%(_BlobList.Extension)' == '.version')" />
+
+
+
+
+
diff --git a/build/compile/LzmaArchive.targets b/build/compile/LzmaArchive.targets
index 494164b26..c3e7d2b0b 100644
--- a/build/compile/LzmaArchive.targets
+++ b/build/compile/LzmaArchive.targets
@@ -5,7 +5,7 @@
?$(CoreSetupBlobAccessToken)$(SdkOutputDirectory)/nuGetPackagesArchive.lzma
- nuGetPackagesArchive.$(AspNetCoreRuntimePackageFlavor).lzma
+ nuGetPackagesArchive-$(AspNetCoreRuntimePackageVersion).lzma$(IntermediateDirectory)/$(NugetPackagesArchiveName)$(AspNetCoreRuntimeInstallerBlobRootUrl)/$(NugetPackagesArchiveName)$(CoreSetupBlobAccessTokenParam)
diff --git a/build/package/CopySandBoxPackageOut.targets b/build/package/CopySandBoxPackageOut.targets
new file mode 100644
index 000000000..a7bf6b524
--- /dev/null
+++ b/build/package/CopySandBoxPackageOut.targets
@@ -0,0 +1,9 @@
+
+
+
+
+
+
+
diff --git a/build/package/Installer.DEB.proj b/build/package/Installer.DEB.proj
index c3baf267b..4b684d161 100644
--- a/build/package/Installer.DEB.proj
+++ b/build/package/Installer.DEB.proj
@@ -25,7 +25,6 @@
-
@@ -65,7 +64,7 @@
Mode="u+x" />
-
-
@@ -97,7 +95,7 @@
-
@@ -125,7 +122,6 @@
-
@@ -160,22 +156,12 @@
-
+
-
-
-
-
-
-
-
diff --git a/build/package/Installer.DEB.targets b/build/package/Installer.DEB.targets
index 00afd7f30..6e0020dbe 100644
--- a/build/package/Installer.DEB.targets
+++ b/build/package/Installer.DEB.targets
@@ -8,8 +8,7 @@
- dotnet-deb-tool-consumer.csproj
- $(IntermediateDirectory)/$(DotnetDebToolConsumerProjectName)
+ $(MSBuildThisFileDirectory)/dotnet-deb-tool-consumer$(NuGetPackagesDir)/dotnet-deb-tool/$(DotnetDebToolVersion)/lib/netcoreapp2.0/tool/package_tool
@@ -35,12 +34,8 @@
dotnet-hostfxr-$(HostFxrDebianPackageVersion)$(HostFxrDebianPackageName.ToLower())dotnet-host
- $(AspNetCoreRuntimePackageBrandName)-$(AspNetCoreVersionAndRelease)-$(AspNetCoreRuntimePackageTimestamp)
- $(AspNetCoreRuntimePackageBrandName)-2.0.0
- $(AspNetCoreRuntimePackageBrandName)-$(AspNetCoreVersion)
- $(HostRid)
- $(AspNetCoreRuntimePackageBrandName)-$(AspNetCoreVersionAndRelease)-$(AspNetCoreRuntimePackageTimestamp)-$(HostRidInAspNetCoreRuntimeDebInstallerFileName).deb
- $(AspNetCoreRuntimePackageBrandName)-$(AspNetCoreVersion)-$(HostRidInAspNetCoreRuntimeDebInstallerFileName).deb
+ $(AspNetCoreRuntimePackageBrandName)-$(AspNetCoreRuntimePackageVersion)
+ $(AspNetCoreRuntimePackageBrandName)-$(AspNetCoreRuntimePackageVersion)-$(HostRid).deb
@@ -115,6 +110,9 @@
+
+
+
@@ -124,13 +122,8 @@
- $(AspNetCoreRuntimePackageBrandName)-2.0.0-$(HostRidInAspNetCoreRuntimeDebInstallerFileName).deb
- $(PackagesDirectory)/AspNetCoreRuntimeDebInstallerFileName200$(PackagesDirectory)/$(AspNetCoreRuntimeDebInstallerFileName)
-
diff --git a/build/package/Installer.MSI.targets b/build/package/Installer.MSI.targets
index 2a4e131b8..ea98d309a 100644
--- a/build/package/Installer.MSI.targets
+++ b/build/package/Installer.MSI.targets
@@ -199,7 +199,8 @@
+ -DotnetDir '$(PreviousStageDirectory)'
+ -TestDir '$(TestOutputDir)'" />
-
-
- $(SdkVersion)
- $(OutputDirectory)/sdk
- $(InstallerOutputDirectory)/$(DistroSpecificArtifactNameWithVersionCombinedHostHostFxrFrameworkSdk)$(InstallerExtension)
- $(SdkInstallerFile)
- $(RepoRoot)/Documentation/manpages
- $(RepoRoot)/packaging/rpm/dotnet-config.json
- $(IntermediateDirectory)/$(RpmPackageName)/$(RpmPackageVersion)
- $(RpmIntermediatesDir)/debian-testResults.xml
- /usr/share/dotnet
-
-
-
- $(RpmIntermediatesDir)/RpmLayoutDirectory/
- $(RpmLayoutDirectory)package_root
- $(RpmLayoutPackageRoot)/sdk
- $(RpmLayoutDirectory)docs
- $(RpmLayoutDirectory)templates
- $(RpmLayoutDirectory)scripts
-
-
-
- $(SdkVersion)
- $(ArtifactNameCombinedHostHostFxrFrameworkSdk)-$(SdkRpmPackageVersion)
- $(SharedFrameworkVersion)
- dotnet-runtime-$(SharedFxRpmPackageVersion)
- $(SharedFxRpmPackageName.ToLower())
- $(HostFxrVersion)
- dotnet-hostfxr-$(HostFxrRpmPackageVersion)
- $(HostFxrRpmPackageName.ToLower())
- dotnet-host
- $(HostRid)
- $(AspNetCoreRuntimePackageBrandName)-$(AspNetCoreVersionAndRelease)-$(AspNetCoreRuntimePackageTimestamp)
- $(AspNetCoreRuntimePackageBrandName)-$(AspNetCoreVersion)
- $(AspNetCoreRuntimePackageBrandName)-2.0.0
- $(AspNetCoreVersion)-$(AspNetCoreRelease)-$(AspNetCoreRuntimePackageTimestamp)
- $(AspNetCoreVersion)
- $(AspNetCoreRuntimePackageBrandName)-$(AspNetCoreVersionAndRelease)-$(AspNetCoreRuntimePackageTimestamp)-$(HostRidInAspNetCoreRuntimeRpmInstallerFileName).rpm
- $(AspNetCoreRuntimePackageBrandName)-$(AspNetCoreVersion)-$(HostRidInAspNetCoreRuntimeRpmInstallerFileName).rpm
- $(ScriptsDir)/$(AfterInstallHostScriptName)
- $(RpmLayoutScripts)/$(AfterInstallHostScriptName)
-
-
-
- $(RepoRoot)/test/EndToEnd/EndToEnd.csproj
-
+
@@ -141,6 +96,11 @@
+
+
+
+
+
@@ -183,16 +143,54 @@
-
+
+
+ $(SdkVersion)
+ $(OutputDirectory)/sdk
+ $(InstallerOutputDirectory)/$(DistroSpecificArtifactNameWithVersionCombinedHostHostFxrFrameworkSdk)$(InstallerExtension)
+ $(SdkInstallerFile)
+ $(RepoRoot)/Documentation/manpages
+ $(RepoRoot)/packaging/rpm/dotnet-config.json
+ $(IntermediateDirectory)/$(RpmPackageName)/$(RpmPackageVersion)
+ $(RpmIntermediatesDir)/debian-testResults.xml
+ /usr/share/dotnet
+
+
+
+ $(RpmIntermediatesDir)/RpmLayoutDirectory/
+ $(RpmLayoutDirectory)package_root
+ $(RpmLayoutPackageRoot)/sdk
+ $(RpmLayoutDirectory)docs
+ $(RpmLayoutDirectory)templates
+ $(RpmLayoutDirectory)scripts
+
+
+
+ $(SdkVersion)
+ $(ArtifactNameCombinedHostHostFxrFrameworkSdk)-$(SdkRpmPackageVersion)
+ $(SharedFrameworkVersion)
+ dotnet-runtime-$(SharedFxRpmPackageVersion)
+ $(SharedFxRpmPackageName.ToLower())
+ $(HostFxrVersion)
+ dotnet-hostfxr-$(HostFxrRpmPackageVersion)
+ $(HostFxrRpmPackageName.ToLower())
+ dotnet-host
+ $(AspNetCoreRuntimePackageBrandName)-$(AspNetCoreRuntimePackageVersion)
+ $(AspNetCoreRuntimePackageBrandName)-$(AspNetCoreRuntimePackageVersion)-$(HostRid).rpm
+ $(ScriptsDir)/$(AfterInstallHostScriptName)
+ $(RpmLayoutScripts)/$(AfterInstallHostScriptName)
+
+
+
+ $(RepoRoot)/test/EndToEnd/EndToEnd.csproj
+
+
+
+
- $(AspNetCoreRuntimePackageBrandName)-2.0.0-$(HostRidInAspNetCoreRuntimeRpmInstallerFileName).rpm
- $(PackagesDirectory)/$(AspNetCoreRuntimeRpmInstallerFileName200)$(PackagesDirectory)/$(AspNetCoreRuntimeRpmInstallerFileName)
-
@@ -219,7 +217,7 @@
-
@@ -241,14 +238,13 @@
ToolPath="$(RpmInstalledDirectory)" />
-
diff --git a/build/package/Nupkg.targets b/build/package/Nupkg.targets
index 9158c2143..d7287c8b7 100644
--- a/build/package/Nupkg.targets
+++ b/build/package/Nupkg.targets
@@ -24,7 +24,7 @@
@@ -34,7 +34,7 @@
-
diff --git a/build/package/dotnet-deb-tool-consumer.csproj b/build/package/dotnet-deb-tool-consumer/dotnet-deb-tool-consumer.csproj
similarity index 74%
rename from build/package/dotnet-deb-tool-consumer.csproj
rename to build/package/dotnet-deb-tool-consumer/dotnet-deb-tool-consumer.csproj
index a48d3d6f2..03e67c852 100644
--- a/build/package/dotnet-deb-tool-consumer.csproj
+++ b/build/package/dotnet-deb-tool-consumer/dotnet-deb-tool-consumer.csproj
@@ -1,6 +1,4 @@
-
-
netcoreapp2.0$(CLI_SharedFrameworkVersion)
diff --git a/build/prepare/CheckPrereqs.targets b/build/prepare/CheckPrereqs.targets
index 1e7454410..03d743c35 100644
--- a/build/prepare/CheckPrereqs.targets
+++ b/build/prepare/CheckPrereqs.targets
@@ -8,8 +8,8 @@
DependsOnTargets="CheckUbuntuAptGetDependencies;
CheckCentOsYumDependencies;">
-
-
+
+
-
\ No newline at end of file
+
+
+
+ $(OSName)_$(Architecture)
+ rhel.6_x64
+ linux_x64
+ all_linux_distros_native_installer
+
+ $(BaseOutputDirectory)/$(VersionBadgeMoniker)_$(Configuration)_version_badge.svg
+ $(BaseOutputDirectory)/$(VersionBadgeMoniker)_$(Configuration)_coherent_badge.svg
+
+
+
diff --git a/build/publish/PublishDebian.targets b/build/publish/PublishDebian.targets
index 43ab5abda..801230fb0 100644
--- a/build/publish/PublishDebian.targets
+++ b/build/publish/PublishDebian.targets
@@ -4,30 +4,20 @@
dotnet-sdk-$(SdkVersion)
-
- $(DotnetBlobRootUrl)/$(Product)/$(FullNugetVersion)/$(DistroSpecificArtifactNameWithVersionCombinedHostHostFxrFrameworkSdk)$(InstallerExtension)
- $(SdkDebianIntermediateDirectory)/package_upload.json
- 1
+
+
+
+
-
- {
- "name":"$(SdkDebianPackageName)",
- "version":"$(NugetVersion)-$(DebianRevisionNumber)",
- "repositoryId":"$(REPO_ID)",
- "sourceUrl": "$(SdkDebianUploadUrl)"
- }
-
-
-
-
-
-
-
-
-
-
-
-
-
+
diff --git a/build/sdks/sdks.csproj b/build/sdks/sdks.csproj
index b7c9941c0..f246e1f9d 100755
--- a/build/sdks/sdks.csproj
+++ b/build/sdks/sdks.csproj
@@ -9,6 +9,7 @@
+
diff --git a/build/test/RunTest.proj b/build/test/RunTest.proj
index 8b1ec899f..0454d8a6f 100644
--- a/build/test/RunTest.proj
+++ b/build/test/RunTest.proj
@@ -11,7 +11,13 @@
-
+
+
+
+
+
+
+ test/Performance/Performance.csproj;
+ test/Microsoft.DotNet.TestFramework/Microsoft.DotNet.TestFramework.csproj" />
diff --git a/build_projects/Microsoft.DotNet.Cli.Build.Framework/Microsoft.DotNet.Cli.Build.Framework.csproj b/build_projects/Microsoft.DotNet.Cli.Build.Framework/Microsoft.DotNet.Cli.Build.Framework.csproj
index dd2f94e91..fefc8affe 100644
--- a/build_projects/Microsoft.DotNet.Cli.Build.Framework/Microsoft.DotNet.Cli.Build.Framework.csproj
+++ b/build_projects/Microsoft.DotNet.Cli.Build.Framework/Microsoft.DotNet.Cli.Build.Framework.csproj
@@ -1,5 +1,4 @@
- netstandard1.5
diff --git a/build_projects/dotnet-cli-build.Tests/GivenActionAndRetryTimes.cs b/build_projects/dotnet-cli-build.Tests/GivenActionAndRetryTimes.cs
new file mode 100644
index 000000000..47c83e0a7
--- /dev/null
+++ b/build_projects/dotnet-cli-build.Tests/GivenActionAndRetryTimes.cs
@@ -0,0 +1,92 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Threading.Tasks;
+using FluentAssertions;
+using Microsoft.DotNet.Cli.Build.UploadToLinuxPackageRepository;
+using Xunit;
+
+namespace dotnet_cli_build.Tests
+{
+ public class GivenActionAndRetryTimes
+ {
+ public static IEnumerable NoWaitTimer()
+ {
+ while (true)
+ {
+ yield return Task.CompletedTask;
+ }
+ }
+
+ [Fact]
+ public void ExponentialRetryShouldProvideIntervalSequence()
+ {
+ ExponentialRetry.Intervals.First().Should().Be(TimeSpan.FromSeconds(5));
+ ExponentialRetry.Intervals.Skip(1).First().Should().Be(TimeSpan.FromSeconds(10));
+ ExponentialRetry.Intervals.Skip(2).First().Should().Be(TimeSpan.FromSeconds(20));
+ ExponentialRetry.Intervals.Skip(3).First().Should().Be(TimeSpan.FromSeconds(40));
+ ExponentialRetry.Intervals.Skip(4).First().Should().Be(TimeSpan.FromSeconds(80));
+ }
+
+ [Fact]
+ public void ExponentialShouldNotRetryAfterFirstSucceess()
+ {
+ var fakeAction = new FakeAction(0);
+ ExponentialRetry.ExecuteWithRetry(
+ fakeAction.Run,
+ s => s == "success",
+ 10,
+ NoWaitTimer).Wait();
+ fakeAction.Count.Should().Be(0);
+ }
+
+ [Fact]
+ public void ExponentialShouldRetryUntilSuccess()
+ {
+ var fakeAction = new FakeAction(5);
+ ExponentialRetry.ExecuteWithRetry(
+ fakeAction.Run,
+ s => s == "success",
+ 10,
+ NoWaitTimer).Wait();
+ fakeAction.Count.Should().Be(5);
+ }
+
+ [Fact]
+ public void ExponentialShouldThrowAfterMaximumAmountReached()
+ {
+ var fakeAction = new FakeAction(10);
+ Action a = () => ExponentialRetry.ExecuteWithRetry(
+ fakeAction.Run,
+ s => s == "success",
+ 5,
+ NoWaitTimer,
+ "testing retry").Wait();
+ a.ShouldThrow()
+ .WithMessage("Retry failed for testing retry after 5 times with result: fail");
+ }
+ }
+
+ public class FakeAction
+ {
+ private readonly int _successAfter;
+
+ public FakeAction(int successAfter)
+ {
+ _successAfter = successAfter;
+ }
+
+ public int Count { get; private set; }
+
+ public Task Run()
+ {
+ if (_successAfter == Count)
+ {
+ return Task.FromResult("success");
+ }
+
+ Count++;
+ return Task.FromResult("fail");
+ }
+ }
+}
\ No newline at end of file
diff --git a/build_projects/dotnet-cli-build.Tests/dotnet-cli-build.Tests.csproj b/build_projects/dotnet-cli-build.Tests/dotnet-cli-build.Tests.csproj
new file mode 100644
index 000000000..e28340dda
--- /dev/null
+++ b/build_projects/dotnet-cli-build.Tests/dotnet-cli-build.Tests.csproj
@@ -0,0 +1,22 @@
+
+
+
+
+ $(CliTargetFramework)
+ 1.0.0
+ $(AssetTargetFallback);portable-net45+win8+wp8+wpa81
+ false
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/build_projects/dotnet-cli-build/CheckIfAllBuildsHavePublished.cs b/build_projects/dotnet-cli-build/CheckIfAllBuildsHavePublished.cs
index 1dfb0b3de..5b9073097 100644
--- a/build_projects/dotnet-cli-build/CheckIfAllBuildsHavePublished.cs
+++ b/build_projects/dotnet-cli-build/CheckIfAllBuildsHavePublished.cs
@@ -52,11 +52,9 @@ namespace Microsoft.DotNet.Cli.Build
{ "win_x86", false },
{ "win_x64", false },
{ "osx_x64", false },
- { "debian_8_x64", false },
- { "rhel_7_x64", false },
- { "ubuntu_14_04_x64", false },
- { "ubuntu_16_04_x64", false },
- { "linux_x64", false }
+ { "linux_x64", false },
+ { "rhel.6_x64", false },
+ { "all_linux_distros_native_installer", false}
};
if (!badges.ContainsKey(VersionBadgeMoniker))
diff --git a/build_projects/dotnet-cli-build/DotNetMSBuildTool.cs b/build_projects/dotnet-cli-build/DotNetMSBuildTool.cs
index 18cca3ab3..f0ab3f3a5 100644
--- a/build_projects/dotnet-cli-build/DotNetMSBuildTool.cs
+++ b/build_projects/dotnet-cli-build/DotNetMSBuildTool.cs
@@ -13,11 +13,13 @@ namespace Microsoft.DotNet.Cli.Build
public string Verbosity { get; set; }
+ public string AdditionalParameters { get; set; }
+
protected override string Args
{
get
{
- return $"{GetVerbosityArg()} {GetMaxCpuCountArg()}";
+ return $"{GetVerbosityArg()} {GetMaxCpuCountArg()} {GetAdditionalParameters()}";
}
}
@@ -40,5 +42,10 @@ namespace Microsoft.DotNet.Cli.Build
return null;
}
+
+ private string GetAdditionalParameters()
+ {
+ return AdditionalParameters;
+ }
}
}
diff --git a/build_projects/dotnet-cli-build/DotNetRestore.cs b/build_projects/dotnet-cli-build/DotNetRestore.cs
index 88bca5e22..d7d984be3 100644
--- a/build_projects/dotnet-cli-build/DotNetRestore.cs
+++ b/build_projects/dotnet-cli-build/DotNetRestore.cs
@@ -12,13 +12,11 @@ namespace Microsoft.DotNet.Cli.Build
protected override string Args
{
- get { return $"{base.Args} {GetProjectPath()} {GetConfigFile()} {GetSource()} {GetPackages()} {GetSkipInvalidConfigurations()} {GetRuntime()} {GetAdditionalParameters()}"; }
+ get { return $"{base.Args} {GetProjectPath()} {GetConfigFile()} {GetSource()} {GetPackages()} {GetSkipInvalidConfigurations()} {GetRuntime()} {AdditionalParameters}"; }
}
public string ConfigFile { get; set; }
- public string AdditionalParameters { get; set; }
-
public string ProjectPath { get; set; }
public string Source { get; set; }
@@ -88,10 +86,5 @@ namespace Microsoft.DotNet.Cli.Build
return null;
}
-
- private string GetAdditionalParameters()
- {
- return AdditionalParameters;
- }
}
}
diff --git a/build_projects/dotnet-cli-build/EnsureFileExistsOnAzureBlobStorage.cs b/build_projects/dotnet-cli-build/EnsureFileExistsOnAzureBlobStorage.cs
new file mode 100644
index 000000000..e795349ff
--- /dev/null
+++ b/build_projects/dotnet-cli-build/EnsureFileExistsOnAzureBlobStorage.cs
@@ -0,0 +1,40 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
+
+using System;
+using Microsoft.Build.Framework;
+using Microsoft.WindowsAzure.Storage.Blob;
+using System.Threading.Tasks;
+
+namespace Microsoft.DotNet.Build.CloudTestTasks
+{
+ public class EnsureFileExistsOnAzureBlobStorage : Microsoft.Build.Utilities.Task
+ {
+ [Required]
+ public string FileUrl{ get; set; }
+
+ public override bool Execute()
+ {
+ if (!ExecuteAsync().GetAwaiter().GetResult())
+ {
+ throw new FileDoesNotExistOnAzureBlobStorageException(FileUrl);
+
+ }
+ return true;
+ }
+
+ private Task ExecuteAsync()
+ {
+ var blobClient = new CloudBlockBlob(new Uri(FileUrl));
+ return blobClient.ExistsAsync();
+ }
+
+ public class FileDoesNotExistOnAzureBlobStorageException : Exception
+ {
+ public FileDoesNotExistOnAzureBlobStorageException(string message) : base(message + " cannot be found on Azure Blob Storage")
+ {
+ }
+ }
+ }
+}
diff --git a/build_projects/dotnet-cli-build/MakeRelative.cs b/build_projects/dotnet-cli-build/MakeRelative.cs
index e8f04b159..6361f341c 100644
--- a/build_projects/dotnet-cli-build/MakeRelative.cs
+++ b/build_projects/dotnet-cli-build/MakeRelative.cs
@@ -17,21 +17,12 @@ namespace Microsoft.DotNet.Cli.Build
[Required]
public string Path2 { get; set; }
- public char SeparatorChar { get; set; }
-
[Output]
public ITaskItem RelativePath { get; set; }
public override bool Execute()
{
- if (SeparatorChar == default(char))
- {
- SeparatorChar = Path.DirectorySeparatorChar;
- }
-
- var relativePath = GetRelativePath(Path1, Path2, SeparatorChar);
-
- RelativePath = ToTaskItem(Path1, Path2, relativePath);
+ RelativePath = ToTaskItem(Path1, Path2, Path.GetRelativePath(Path1, Path2));
return true;
}
@@ -47,75 +38,5 @@ namespace Microsoft.DotNet.Cli.Build
return framework;
}
-
- private static string GetRelativePath(string path1, string path2, char separator = default(char))
- {
-
- StringComparison compare;
- if (CurrentPlatform.IsWindows)
- {
- compare = StringComparison.OrdinalIgnoreCase;
- // check if paths are on the same volume
- if (!string.Equals(Path.GetPathRoot(path1), Path.GetPathRoot(path2)))
- {
- // on different volumes, "relative" path is just Path2
- return path2;
- }
- }
- else
- {
- compare = StringComparison.Ordinal;
- }
-
- var index = 0;
- var path1Segments = path1.Split(Path.DirectorySeparatorChar, Path.AltDirectorySeparatorChar);
- var path2Segments = path2.Split(Path.DirectorySeparatorChar, Path.AltDirectorySeparatorChar);
- // if path1 does not end with / it is assumed the end is not a directory
- // we will assume that is isn't a directory by ignoring the last split
- var len1 = path1Segments.Length - 1;
- var len2 = path2Segments.Length;
-
- // find largest common absolute path between both paths
- var min = Math.Min(len1, len2);
- while (min > index)
- {
- if (!string.Equals(path1Segments[index], path2Segments[index], compare))
- {
- break;
- }
- // Handle scenarios where folder and file have same name (only if os supports same name for file and directory)
- // e.g. /file/name /file/name/app
- else if ((len1 == index && len2 > index + 1) || (len1 > index && len2 == index + 1))
- {
- break;
- }
- ++index;
- }
-
- var path = "";
-
- // check if path2 ends with a non-directory separator and if path1 has the same non-directory at the end
- if (len1 + 1 == len2 && !string.IsNullOrEmpty(path1Segments[index]) &&
- string.Equals(path1Segments[index], path2Segments[index], compare))
- {
- return path;
- }
-
- for (var i = index; len1 > i; ++i)
- {
- path += ".." + separator;
- }
- for (var i = index; len2 - 1 > i; ++i)
- {
- path += path2Segments[i] + separator;
- }
- // if path2 doesn't end with an empty string it means it ended with a non-directory name, so we add it back
- if (!string.IsNullOrEmpty(path2Segments[len2 - 1]))
- {
- path += path2Segments[len2 - 1];
- }
-
- return path;
- }
}
}
diff --git a/build_projects/dotnet-cli-build/UploadToLinuxPackageRepository/AddPackageStrategy.cs b/build_projects/dotnet-cli-build/UploadToLinuxPackageRepository/AddPackageStrategy.cs
new file mode 100644
index 000000000..eba259a7d
--- /dev/null
+++ b/build_projects/dotnet-cli-build/UploadToLinuxPackageRepository/AddPackageStrategy.cs
@@ -0,0 +1,62 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
+
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Net.Http;
+using System.Text;
+using System.Threading.Tasks;
+using Newtonsoft.Json;
+
+namespace Microsoft.DotNet.Cli.Build.UploadToLinuxPackageRepository
+{
+ internal class AddPackageStrategy : IAzurelinuxRepositoryServiceHttpStrategy
+ {
+ private readonly IdInRepositoryService _idInRepositoryService;
+ private readonly string _packageName;
+ private readonly string _packageVersion;
+ private readonly string _repositoryId;
+
+ public AddPackageStrategy(
+ IdInRepositoryService idInRepositoryService,
+ string packageName,
+ string packageVersion,
+ string repositoryId)
+ {
+ _idInRepositoryService = idInRepositoryService
+ ?? throw new ArgumentNullException(nameof(idInRepositoryService));
+ _packageName = packageName;
+ _packageVersion = packageVersion;
+ _repositoryId = repositoryId;
+ }
+
+ public async Task Execute(HttpClient client, Uri baseAddress)
+ {
+ var debianUploadJsonContent = JsonConvert.SerializeObject(new Dictionary
+ {
+ ["name"] = _packageName,
+ ["version"] = AppendDebianRevisionNumber(_packageVersion),
+ ["fileId"] = _idInRepositoryService.Id,
+ ["repositoryId"] = _repositoryId
+ });
+ var content = new StringContent(debianUploadJsonContent,
+ Encoding.UTF8,
+ "application/json");
+
+ using (var response = await client.PostAsync(new Uri(baseAddress, "/v1/packages"), content))
+ {
+ if (!response.IsSuccessStatusCode)
+ throw new FailedToAddPackageToPackageRepositoryException(
+ $"request:{debianUploadJsonContent} response:{JsonConvert.SerializeObject(response)}");
+ return response.Headers.GetValues("Location").Single();
+ }
+ }
+
+ private static string AppendDebianRevisionNumber(string packageVersion)
+ {
+ return packageVersion + "-1";
+ }
+ }
+}
diff --git a/build_projects/dotnet-cli-build/UploadToLinuxPackageRepository/ExponentialRetry.cs b/build_projects/dotnet-cli-build/UploadToLinuxPackageRepository/ExponentialRetry.cs
new file mode 100644
index 000000000..df3590940
--- /dev/null
+++ b/build_projects/dotnet-cli-build/UploadToLinuxPackageRepository/ExponentialRetry.cs
@@ -0,0 +1,53 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
+
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Threading.Tasks;
+
+namespace Microsoft.DotNet.Cli.Build.UploadToLinuxPackageRepository
+{
+ public static class ExponentialRetry
+ {
+ public static IEnumerable Intervals
+ {
+ get
+ {
+ var seconds = 5;
+ while (true)
+ {
+ yield return TimeSpan.FromSeconds(seconds);
+ seconds *= 2;
+ }
+ }
+ }
+
+ public static async Task ExecuteWithRetry(Func> action,
+ Func isSuccess,
+ int maxRetryCount,
+ Func> timer,
+ string taskDescription = "")
+ {
+ var count = 0;
+ foreach (var t in timer())
+ {
+ await t;
+ var result = await action();
+ if (isSuccess(result))
+ return;
+ count++;
+ if (count == maxRetryCount)
+ throw new RetryFailedException(
+ $"Retry failed for {taskDescription} after {count} times with result: {result}");
+ }
+ throw new Exception("Timer should not be exhausted");
+ }
+
+ public static IEnumerable Timer(IEnumerable interval)
+ {
+ return interval.Select(Task.Delay);
+ }
+ }
+}
diff --git a/build_projects/dotnet-cli-build/UploadToLinuxPackageRepository/FailedToAddPackageToPackageRepositoryException.cs b/build_projects/dotnet-cli-build/UploadToLinuxPackageRepository/FailedToAddPackageToPackageRepositoryException.cs
new file mode 100644
index 000000000..68c314c08
--- /dev/null
+++ b/build_projects/dotnet-cli-build/UploadToLinuxPackageRepository/FailedToAddPackageToPackageRepositoryException.cs
@@ -0,0 +1,24 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
+
+using System;
+
+namespace Microsoft.DotNet.Cli.Build.UploadToLinuxPackageRepository
+{
+ public class FailedToAddPackageToPackageRepositoryException : Exception
+ {
+ public FailedToAddPackageToPackageRepositoryException(string message) : base(message)
+ {
+ }
+
+ public FailedToAddPackageToPackageRepositoryException()
+ {
+ }
+
+ public FailedToAddPackageToPackageRepositoryException(string message, Exception innerException) : base(message,
+ innerException)
+ {
+ }
+ }
+}
diff --git a/build_projects/dotnet-cli-build/UploadToLinuxPackageRepository/FileUploadStrategy.cs b/build_projects/dotnet-cli-build/UploadToLinuxPackageRepository/FileUploadStrategy.cs
new file mode 100644
index 000000000..e71eca436
--- /dev/null
+++ b/build_projects/dotnet-cli-build/UploadToLinuxPackageRepository/FileUploadStrategy.cs
@@ -0,0 +1,49 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
+
+using System;
+using System.IO;
+using System.Net.Http;
+using System.Threading.Tasks;
+using Newtonsoft.Json;
+
+namespace Microsoft.DotNet.Cli.Build.UploadToLinuxPackageRepository
+{
+ internal class FileUploadStrategy : IAzurelinuxRepositoryServiceHttpStrategy
+ {
+ private readonly string _pathToPackageToUpload;
+
+ public FileUploadStrategy(string pathToPackageToUpload)
+ {
+ _pathToPackageToUpload = pathToPackageToUpload
+ ?? throw new ArgumentNullException(nameof(pathToPackageToUpload));
+ }
+
+ public async Task Execute(HttpClient client, Uri baseAddress)
+ {
+ var fileName = Path.GetFileName(_pathToPackageToUpload);
+
+ using (var content =
+ new MultipartFormDataContent())
+ {
+ var url = new Uri(baseAddress, "/v1/files");
+ content.Add(
+ new StreamContent(
+ new MemoryStream(
+ File.ReadAllBytes(_pathToPackageToUpload))),
+ "file",
+ fileName);
+ using (var message = await client.PostAsync(url, content))
+ {
+ if (!message.IsSuccessStatusCode)
+ {
+ throw new FailedToAddPackageToPackageRepositoryException(
+ $"{JsonConvert.SerializeObject(message)} failed to post file to {url} file name:{fileName} pathToPackageToUpload:{_pathToPackageToUpload}");
+ }
+ return await message.Content.ReadAsStringAsync();
+ }
+ }
+ }
+ }
+}
diff --git a/build_projects/dotnet-cli-build/UploadToLinuxPackageRepository/IAzurelinuxRepositoryServiceHttpStrategy.cs b/build_projects/dotnet-cli-build/UploadToLinuxPackageRepository/IAzurelinuxRepositoryServiceHttpStrategy.cs
new file mode 100644
index 000000000..a829f398a
--- /dev/null
+++ b/build_projects/dotnet-cli-build/UploadToLinuxPackageRepository/IAzurelinuxRepositoryServiceHttpStrategy.cs
@@ -0,0 +1,15 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
+
+using System;
+using System.Net.Http;
+using System.Threading.Tasks;
+
+namespace Microsoft.DotNet.Cli.Build.UploadToLinuxPackageRepository
+{
+ internal interface IAzurelinuxRepositoryServiceHttpStrategy
+ {
+ Task Execute(HttpClient client, Uri baseAddress);
+ }
+}
diff --git a/build_projects/dotnet-cli-build/UploadToLinuxPackageRepository/IdInRepositoryService.cs b/build_projects/dotnet-cli-build/UploadToLinuxPackageRepository/IdInRepositoryService.cs
new file mode 100644
index 000000000..b51ebb3be
--- /dev/null
+++ b/build_projects/dotnet-cli-build/UploadToLinuxPackageRepository/IdInRepositoryService.cs
@@ -0,0 +1,18 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
+
+using System;
+
+namespace Microsoft.DotNet.Cli.Build.UploadToLinuxPackageRepository
+{
+ internal class IdInRepositoryService
+ {
+ public IdInRepositoryService(string id)
+ {
+ Id = id ?? throw new ArgumentNullException(nameof(id));
+ }
+
+ public string Id { get; }
+ }
+}
diff --git a/build_projects/dotnet-cli-build/UploadToLinuxPackageRepository/LinuxPackageRepositoryDestiny.cs b/build_projects/dotnet-cli-build/UploadToLinuxPackageRepository/LinuxPackageRepositoryDestiny.cs
new file mode 100644
index 000000000..aa2e6d9bc
--- /dev/null
+++ b/build_projects/dotnet-cli-build/UploadToLinuxPackageRepository/LinuxPackageRepositoryDestiny.cs
@@ -0,0 +1,38 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
+
+using System;
+
+namespace Microsoft.DotNet.Cli.Build.UploadToLinuxPackageRepository
+{
+ internal class LinuxPackageRepositoryDestiny
+ {
+ private readonly string _password;
+ private readonly string _server;
+ private readonly string _username;
+
+ public LinuxPackageRepositoryDestiny(string username,
+ string password,
+ string server,
+ string repositoryId)
+ {
+ _username = username ?? throw new ArgumentNullException(nameof(username));
+ _password = password ?? throw new ArgumentNullException(nameof(password));
+ _server = server ?? throw new ArgumentNullException(nameof(server));
+ RepositoryId = repositoryId ?? throw new ArgumentNullException(nameof(repositoryId));
+ }
+
+ public string RepositoryId { get; }
+
+ public Uri GetBaseAddress()
+ {
+ return new Uri($"https://{_server}");
+ }
+
+ public string GetSimpleAuth()
+ {
+ return $"{_username}:{_password}";
+ }
+ }
+}
diff --git a/build_projects/dotnet-cli-build/UploadToLinuxPackageRepository/LinuxPackageRepositoryHttpPrepare.cs b/build_projects/dotnet-cli-build/UploadToLinuxPackageRepository/LinuxPackageRepositoryHttpPrepare.cs
new file mode 100644
index 000000000..7e1f9ade7
--- /dev/null
+++ b/build_projects/dotnet-cli-build/UploadToLinuxPackageRepository/LinuxPackageRepositoryHttpPrepare.cs
@@ -0,0 +1,46 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
+
+using System;
+using System.Net.Http;
+using System.Net.Http.Headers;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace Microsoft.DotNet.Cli.Build.UploadToLinuxPackageRepository
+{
+ internal class LinuxPackageRepositoryHttpPrepare
+ {
+ private readonly IAzurelinuxRepositoryServiceHttpStrategy _httpStrategy;
+ private readonly LinuxPackageRepositoryDestiny _linuxPackageRepositoryDestiny;
+
+ public LinuxPackageRepositoryHttpPrepare(
+ LinuxPackageRepositoryDestiny linuxPackageRepositoryDestiny,
+ IAzurelinuxRepositoryServiceHttpStrategy httpStrategy
+ )
+ {
+ _linuxPackageRepositoryDestiny = linuxPackageRepositoryDestiny
+ ?? throw new ArgumentNullException(nameof(linuxPackageRepositoryDestiny));
+ _httpStrategy = httpStrategy ?? throw new ArgumentNullException(nameof(httpStrategy));
+ }
+
+ public async Task RemoteCall()
+ {
+ using (var handler = new HttpClientHandler())
+ {
+ using (var client = new HttpClient(handler))
+ {
+ var authHeader =
+ Convert.ToBase64String(Encoding.UTF8.GetBytes((string) _linuxPackageRepositoryDestiny.GetSimpleAuth()));
+ client.DefaultRequestHeaders.Authorization =
+ new AuthenticationHeaderValue("Basic", authHeader);
+ client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
+ client.Timeout = TimeSpan.FromMinutes(10);
+
+ return await _httpStrategy.Execute(client, _linuxPackageRepositoryDestiny.GetBaseAddress());
+ }
+ }
+ }
+ }
+}
diff --git a/build_projects/dotnet-cli-build/UploadToLinuxPackageRepository/PullQueuedPackageStatus.cs b/build_projects/dotnet-cli-build/UploadToLinuxPackageRepository/PullQueuedPackageStatus.cs
new file mode 100644
index 000000000..393a160ae
--- /dev/null
+++ b/build_projects/dotnet-cli-build/UploadToLinuxPackageRepository/PullQueuedPackageStatus.cs
@@ -0,0 +1,34 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
+
+using System;
+using System.Net.Http;
+using System.Threading.Tasks;
+using Newtonsoft.Json.Linq;
+
+namespace Microsoft.DotNet.Cli.Build.UploadToLinuxPackageRepository
+{
+ internal class PullQueuedPackageStatus : IAzurelinuxRepositoryServiceHttpStrategy
+ {
+ private readonly QueueResourceLocation _queueResourceLocation;
+
+ public PullQueuedPackageStatus(QueueResourceLocation queueResourceLocation)
+ {
+ _queueResourceLocation = queueResourceLocation
+ ?? throw new ArgumentNullException(nameof(queueResourceLocation));
+ }
+
+ public async Task Execute(HttpClient client, Uri baseAddress)
+ {
+ using (var response = await client.GetAsync(new Uri(baseAddress, _queueResourceLocation.Location)))
+ {
+ if (!response.IsSuccessStatusCode)
+ throw new FailedToAddPackageToPackageRepositoryException(
+ "Failed to make request to " + _queueResourceLocation.Location);
+ var body = await response.Content.ReadAsStringAsync();
+ return !body.Contains("status") ? "" : JObject.Parse(body)["status"].ToString();
+ }
+ }
+ }
+}
diff --git a/build_projects/dotnet-cli-build/UploadToLinuxPackageRepository/QueueResourceLocation.cs b/build_projects/dotnet-cli-build/UploadToLinuxPackageRepository/QueueResourceLocation.cs
new file mode 100644
index 000000000..cbf11e48d
--- /dev/null
+++ b/build_projects/dotnet-cli-build/UploadToLinuxPackageRepository/QueueResourceLocation.cs
@@ -0,0 +1,18 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
+
+using System;
+
+namespace Microsoft.DotNet.Cli.Build.UploadToLinuxPackageRepository
+{
+ internal class QueueResourceLocation
+ {
+ public QueueResourceLocation(string location)
+ {
+ Location = location ?? throw new ArgumentNullException(nameof(location));
+ }
+
+ public string Location { get; }
+ }
+}
diff --git a/build_projects/dotnet-cli-build/UploadToLinuxPackageRepository/RetryFailedException.cs b/build_projects/dotnet-cli-build/UploadToLinuxPackageRepository/RetryFailedException.cs
new file mode 100644
index 000000000..b251ec4b8
--- /dev/null
+++ b/build_projects/dotnet-cli-build/UploadToLinuxPackageRepository/RetryFailedException.cs
@@ -0,0 +1,23 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
+
+using System;
+
+namespace Microsoft.DotNet.Cli.Build.UploadToLinuxPackageRepository
+{
+ public class RetryFailedException : Exception
+ {
+ public RetryFailedException(string message) : base(message)
+ {
+ }
+
+ public RetryFailedException()
+ {
+ }
+
+ public RetryFailedException(string message, Exception innerException) : base(message, innerException)
+ {
+ }
+ }
+}
diff --git a/build_projects/dotnet-cli-build/UploadToLinuxPackageRepository/UploadToLinuxPackageRepository.cs b/build_projects/dotnet-cli-build/UploadToLinuxPackageRepository/UploadToLinuxPackageRepository.cs
new file mode 100644
index 000000000..00099bd14
--- /dev/null
+++ b/build_projects/dotnet-cli-build/UploadToLinuxPackageRepository/UploadToLinuxPackageRepository.cs
@@ -0,0 +1,121 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
+
+using System;
+using System.Net.Http;
+using System.Threading.Tasks;
+using Microsoft.Build.Framework;
+using Newtonsoft.Json.Linq;
+using Task = Microsoft.Build.Utilities.Task;
+
+namespace Microsoft.DotNet.Cli.Build.UploadToLinuxPackageRepository
+{
+ public class UploadToLinuxPackageRepository : Task
+ {
+ ///
+ /// The Azure repository service user name.
+ ///
+ [Required]
+ public string Username { get; set; }
+
+ ///
+ /// The Azure repository service Password.
+ ///
+ [Required]
+ public string Password { get; set; }
+
+ ///
+ /// The Azure repository service URL ex: "tux-devrepo.corp.microsoft.com".
+ ///
+ [Required]
+ public string Server { get; set; }
+
+ [Required]
+ public string RepositoryId { get; set; }
+
+ [Required]
+ public string PathOfPackageToUpload { get; set; }
+
+ [Required]
+ public string PackageNameInLinuxPackageRepository { get; set; }
+
+
+ [Required]
+ public string PackageVersionInLinuxPackageRepository { get; set; }
+
+
+ public override bool Execute()
+ {
+ ExecuteAsyncWithRetry().GetAwaiter().GetResult();
+ return true;
+ }
+
+ private async System.Threading.Tasks.Task ExecuteAsyncWithRetry()
+ {
+ await ExponentialRetry.ExecuteWithRetry(
+ UploadAndAddpackageAndEnsureItIsReady,
+ s => s == "",
+ maxRetryCount: 3,
+ timer: () => ExponentialRetry.Timer(ExponentialRetry.Intervals),
+ taskDescription: $"running {nameof(UploadAndAddpackageAndEnsureItIsReady)}");
+ }
+
+ private async Task UploadAndAddpackageAndEnsureItIsReady()
+ {
+ try
+ {
+ Log.LogMessage(
+ MessageImportance.High,
+ "Begin uploading Linux Package to feed service, RepositoryId {0}, Server {1}, Package to upload {2}.",
+ RepositoryId,
+ Server,
+ PathOfPackageToUpload);
+
+ var linuxPackageRepositoryDestiny =
+ new LinuxPackageRepositoryDestiny(Username, Password, Server, RepositoryId);
+ var uploadResponse = await new LinuxPackageRepositoryHttpPrepare(
+ linuxPackageRepositoryDestiny,
+ new FileUploadStrategy(PathOfPackageToUpload)).RemoteCall();
+
+ var idInRepositoryService = new IdInRepositoryService(JObject.Parse(uploadResponse)["id"].ToString());
+
+ var addPackageResponse = await new LinuxPackageRepositoryHttpPrepare(
+ linuxPackageRepositoryDestiny,
+ new AddPackageStrategy(
+ idInRepositoryService,
+ PackageNameInLinuxPackageRepository,
+ PackageVersionInLinuxPackageRepository,
+ linuxPackageRepositoryDestiny.RepositoryId)).RemoteCall();
+
+ var queueResourceLocation = new QueueResourceLocation(addPackageResponse);
+
+ Func> pullQueuedPackageStatus = new LinuxPackageRepositoryHttpPrepare(
+ linuxPackageRepositoryDestiny,
+ new PullQueuedPackageStatus(queueResourceLocation)).RemoteCall;
+
+ await ExponentialRetry.ExecuteWithRetry(
+ pullQueuedPackageStatus,
+ s => s == "fileReady",
+ 5,
+ () => ExponentialRetry.Timer(ExponentialRetry.Intervals),
+ $"PullQueuedPackageStatus location: {queueResourceLocation.Location}");
+
+ Log.LogMessage(
+ MessageImportance.High,
+ "Upload to feed service is completed, queue resource location {0}",
+ queueResourceLocation.Location);
+
+ return "";
+ }
+ catch (FailedToAddPackageToPackageRepositoryException e)
+ {
+ return e.ToString();
+ }
+ catch (HttpRequestException e)
+ {
+ return e.ToString();
+ }
+ }
+ }
+}
diff --git a/build_projects/dotnet-cli-build/dotnet-cli-build.csproj b/build_projects/dotnet-cli-build/dotnet-cli-build.csproj
index 07a4de29d..e18939f5e 100644
--- a/build_projects/dotnet-cli-build/dotnet-cli-build.csproj
+++ b/build_projects/dotnet-cli-build/dotnet-cli-build.csproj
@@ -1,5 +1,4 @@
- Build scripts for dotnet-cli1.0.0
@@ -15,6 +14,7 @@
+
@@ -22,12 +22,13 @@
+
-
+
diff --git a/build_projects/shared-build-targets-utils/shared-build-targets-utils.csproj b/build_projects/shared-build-targets-utils/shared-build-targets-utils.csproj
index 14a4c4a33..ed7002589 100644
--- a/build_projects/shared-build-targets-utils/shared-build-targets-utils.csproj
+++ b/build_projects/shared-build-targets-utils/shared-build-targets-utils.csproj
@@ -1,5 +1,4 @@
- Build scripts for dotnet-cli
diff --git a/build_projects/update-dependencies/Config.cs b/build_projects/update-dependencies/Config.cs
index 0bd5a0c6a..9ba4b41ea 100644
--- a/build_projects/update-dependencies/Config.cs
+++ b/build_projects/update-dependencies/Config.cs
@@ -20,7 +20,7 @@ namespace Microsoft.DotNet.Scripts
///
/// The following Environment Variables can optionally be specified:
///
- /// DOTNET_VERSION_URL - The Url to the root of the version information (this is combined with the fragments bellow) (ex. "https://raw.githubusercontent.com/dotnet/versions/master/build-info")
+ /// DOTNET_VERSION_URL - The Url to the root of the version information (this is combined with the fragments below) (ex. "https://raw.githubusercontent.com/dotnet/versions/master/build-info")
/// ROSLYN_VERSION_FRAGMENT - The fragment to combine with DOTNET_VERSION_URL to get the current dotnet/roslyn package versions. (ex. "dotnet/roslyn/netcore1.0")
/// CORESETUP_VERSION_FRAGMENT - The fragment to combine with DOTNET_VERSION_URL to get the current dotnet/core-setup package versions. (ex. "dotnet/core-setup/master")
/// GITHUB_ORIGIN_OWNER - The owner of the GitHub fork to push the commit and create the PR from. (ex. "dotnet-bot")
diff --git a/build_projects/update-dependencies/Directory.Build.props b/build_projects/update-dependencies/Directory.Build.props
new file mode 100644
index 000000000..a8d332ca6
--- /dev/null
+++ b/build_projects/update-dependencies/Directory.Build.props
@@ -0,0 +1,8 @@
+
+
+
+
+
diff --git a/build_projects/update-dependencies/update-dependencies.csproj b/build_projects/update-dependencies/update-dependencies.csproj
index 2f82553fe..af401660d 100644
--- a/build_projects/update-dependencies/update-dependencies.csproj
+++ b/build_projects/update-dependencies/update-dependencies.csproj
@@ -4,7 +4,7 @@
Updates the repos dependenciesExe
- netcoreapp2.0
+ netcoreapp2.1
diff --git a/build_projects/update-dependencies/update-dependencies.ps1 b/build_projects/update-dependencies/update-dependencies.ps1
index b76d10bc1..4f23db26b 100644
--- a/build_projects/update-dependencies/update-dependencies.ps1
+++ b/build_projects/update-dependencies/update-dependencies.ps1
@@ -34,6 +34,8 @@ if (!$env:DOTNET_INSTALL_DIR)
$env:DOTNET_INSTALL_DIR="$RepoRoot\.dotnet_stage0\$Architecture"
}
+$env:DOTNET_SKIP_FIRST_TIME_EXPERIENCE=1
+
# Install a stage 0
Write-Output "Installing .NET Core CLI Stage 0"
& "$RepoRoot\scripts\obtain\dotnet-install.ps1" -Channel "master" -Architecture $Architecture
@@ -42,11 +44,6 @@ if($LASTEXITCODE -ne 0) { throw "Failed to install stage0" }
# Put the stage0 on the path
$env:PATH = "$env:DOTNET_INSTALL_DIR;$env:PATH"
-# Restore the app
-Write-Output "Restoring $ProjectPath..."
-dotnet restore "$ProjectPath"
-if($LASTEXITCODE -ne 0) { throw "Failed to restore" }
-
# Run the app
Write-Output "Invoking App $ProjectPath..."
dotnet run -p "$ProjectPath" "$ProjectArgs"
diff --git a/build_projects/update-dependencies/update-dependencies.sh b/build_projects/update-dependencies/update-dependencies.sh
index 4781c8453..5e4872bf9 100755
--- a/build_projects/update-dependencies/update-dependencies.sh
+++ b/build_projects/update-dependencies/update-dependencies.sh
@@ -30,6 +30,8 @@ if [ -z "${DOTNET_INSTALL_DIR:-}" ]; then
export DOTNET_INSTALL_DIR=$REPO_ROOT/.dotnet_stage0/x64
fi
+export DOTNET_SKIP_FIRST_TIME_EXPERIENCE=1
+
# Install a stage 0
echo "Installing .NET Core CLI Stage 0"
$REPO_ROOT/scripts/obtain/dotnet-install.sh -Channel master -Architecture x64
@@ -42,14 +44,6 @@ fi
# Put the stage 0 on the path
export PATH=$DOTNET_INSTALL_DIR:$PATH
-echo "Restoring $PROJECT_PATH..."
-dotnet restore "$PROJECT_PATH"
-
-if [ $? -ne 0 ]; then
- echo "Failed to restore"
- exit 1
-fi
-
echo "Invoking App $PROJECT_PATH..."
dotnet run -p "$PROJECT_PATH" $@
diff --git a/dir.props b/dir.props
index 756fccc32..875fe07ca 100644
--- a/dir.props
+++ b/dir.props
@@ -1,46 +1,4 @@
-
-
-
- $(MSBuildThisFileDirectory)
-
- $(NUGET_PACKAGES)
- $(RepoRoot)/.nuget/packages
-
- $(RepoRoot)/build_projects/dotnet-cli-build/bin/dotnet-cli-build.dll
-
- true
- true
-
- netcoreapp2.0
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
diff --git a/netci.groovy b/netci.groovy
index ca09235d7..fd1e9c520 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', 'RHEL7.2:x64:Release', 'CentOS7.1: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']
def static getBuildJobName(def configuration, def os, def architecture) {
return configuration.toLowerCase() + '_' + os.toLowerCase() + '_' + architecture.toLowerCase()
@@ -32,6 +32,13 @@ platformList.each { platform ->
else if (os == 'Windows_2016') {
buildCommand = ".\\build.cmd -Configuration ${configuration} -Architecture ${architecture} -RunInstallerTestsInDocker -Targets Default"
}
+ else if (os == 'Windows_NT_ES') {
+ osUsedForMachineAffinity = 'Windows_NT'
+ buildCommand = """
+set DOTNET_CLI_UI_LANGUAGE=es
+.\\build.cmd -Configuration ${configuration} -Architecture ${architecture} -Targets Default
+"""
+ }
else if (os == 'Ubuntu') {
buildCommand = "./build.sh --skip-prereqs --configuration ${configuration} --docker ubuntu.14.04 --targets Default"
}
@@ -39,6 +46,10 @@ platformList.each { platform ->
osUsedForMachineAffinity = 'Ubuntu16.04';
buildCommand = "./build.sh --linux-portable --skip-prereqs --configuration ${configuration} --targets Default"
}
+ else if (os == 'RHEL6') {
+ osUsedForMachineAffinity = 'Ubuntu16.04';
+ buildCommand = "./build.sh --skip-prereqs --configuration ${configuration} --runtime-id rhel.6-x64 --docker rhel.6 --targets Default"
+ }
else {
// Jenkins non-Ubuntu CI machines don't have docker
buildCommand = "./build.sh --skip-prereqs --configuration ${configuration} --targets Default"
@@ -47,7 +58,7 @@ platformList.each { platform ->
def newJob = job(Utilities.getFullJobName(project, jobName, isPR)) {
// Set the label.
steps {
- if (os == 'Windows_NT' || os == 'Windows_2016') {
+ if (osUsedForMachineAffinity == 'Windows_NT' || osUsedForMachineAffinity == 'Windows_2016') {
// Batch
batchFile(buildCommand)
}
diff --git a/packaging/deb/postinst b/packaging/deb/postinst
index 9eb33f532..4ac4d35e4 100755
--- a/packaging/deb/postinst
+++ b/packaging/deb/postinst
@@ -5,19 +5,18 @@ echo "Please visit http://aka.ms/dotnet-cli-eula for more information."
# Run 'dotnet new' to trigger the first time experience to initialize the cache
echo "Welcome to .NET Core!
---------------------
-Learn more about .NET Core @ https://aka.ms/dotnet-docs. Use dotnet --help to see available commands or go to https://aka.ms/dotnet-cli-docs.
+Learn more about .NET Core: https://aka.ms/dotnet-docs
+Use 'dotnet --help' to see available commands or visit: https://aka.ms/dotnet-cli-docs
-.NET Core Tools Telemetry
+Telemetry
+---------
+The .NET Core tools collect usage data in order to help us improve your experience. The data is anonymous and doesn't include command-line arguments. The data is collected by Microsoft and shared with the community. You can opt-out of telemetry by setting the DOTNET_CLI_TELEMETRY_OPTOUT environment variable to '1' or 'true' using your favorite shell.
+
+Read more about .NET Core CLI Tools telemetry: https://aka.ms/dotnet-cli-telemetry
+
+Configuring...
--------------
-The .NET Core Tools include a telemetry feature that collects usage information. It is important that the .NET Team understands how the tools are being used so that we can improve them.
-
-The data collected is anonymous and will be published in an aggregated form for use by both Microsoft and community engineers under the Creative Commons Attribution License.
-
-The .NET Core Tools telemetry feature is enabled by default. You can opt-out of the telemetry feature by setting an environment variable DOTNET_CLI_TELEMETRY_OPTOUT (for example, 'export' on macOS/Linux, 'set' on Windows) to true (for example, 'true', 1). You can read more about .NET Core tools telemetry at https://aka.ms/dotnet-cli-telemetry.
-
-Installation Note
---------------
-A command will be run during the install process that will improve project restore speed and enable offline access. It will take up to a minute to complete."
+A command is running to populate your local package cache to improve restore speed and enable offline access. This command takes up to one minute to complete and only runs once."
first_run() {
/usr/share/dotnet/dotnet exec /usr/share/dotnet/sdk/%SDK_VERSION%/dotnet.dll internal-reportinstallsuccess "debianpackage" > /dev/null 2>&1 || true
diff --git a/packaging/osx/clisdk/resources/cs.lproj/conclusion.html b/packaging/osx/clisdk/resources/cs.lproj/conclusion.html
index 16f74ec00..f653dd2f5 100644
--- a/packaging/osx/clisdk/resources/cs.lproj/conclusion.html
+++ b/packaging/osx/clisdk/resources/cs.lproj/conclusion.html
@@ -7,8 +7,8 @@
The following was installed at /usr/local/share/dotnet