This commit implements solution configuration to project configuration mapping.
Previously, when a project was added to the solution with the `sln add`
command, solution configurations would be mapped to a project configuration and
platform of the same name, regardless of whether or not the project had a
configuration or platform of that name. This caused the solution to appear
dirty when opened in Visual Studio if the configuration or platform did not
exist at the project level because Visual Studio would attempt to correct the
mapping.
The fix is to check what configurations and platforms are supported by the
project and only map to what is present. If a solution configuration can't be
mapped, the first configuration/platform supported by the project is chosen;
this is consistent with how Visual Studio does the fallback mapping.
Fixes#6221.
* dotnet/release/2.0.0: (32 commits)
Update wix version (#8313)
Use explict and non-preview versions for the build DLL
Fixing a typo...
The 15.4.8 version of the Microsoft.Build.Runtime nuget package is currupt; use the replacement 15.4.8.1
Fix dotnet-install to check the right path for no-op installs when --shared-runtime is specified
Fixed a typo...
Nuget.config update to align with CLI:master - add comments in DependencyVersions.prop
Even more package dependency re-names...
Third pass clean-up of package names.
Second pass clean-up of package names; resequencing download.
Updating dependency version properties in alignment with sample orchestrated build file at: https://dotnetfeed.blob.core.windows.net/orchestrated/20171129-03/orchestration-metadata/PackageVersions.props
The access key is already resolved: 'CoreSetupBlobAccessTokenParam'
Fixed another typo...
Fixed typo...
The first pass will need the extra args [same as run-build.ps1].
Dependency Uptake: download and import a package version props file.
Accounting for MSRC builds with pre-set 'CoreSetupBlobRootUrl' and 'CoreSetupBlobAccessToke' properties.
Changes per code review...
The URL root will include the "dotnet" container; the structure will be identical after the "dotnet" container.
No passwords should be in the open as environmental variables.
...
Conflicts:
build/DependencyVersions.props
src/redist/redist.csproj
src/tool_msbuild/tool_msbuild.csproj
src/tool_roslyn/tool_roslyn.csproj
test/Microsoft.DotNet.Cli.Utils.Tests/Microsoft.DotNet.Cli.Utils.Tests.csproj
The `cli-test-env.sh` script has a `==` comparison operator, which is a
non-POSIX extension.
This commit replaces it with the `=` POSIX operator, enabling it to be sourced
from a wider variety of shells (namely zsh for this commit's author).
As you see, the implementation of the 3 OS to check PATH is different.
There is not too much to extract. And I tried to move the
"contains a folder path in env:path?" to a method. But that
method requires to pass in env:path, targetapath and path separator for
different OS. This method has low value. And people still must
remember to use this method. So I just added simple null check to the
place I used GetEnvPath.