This commit fixes the case sensitivity of tool package identifiers.
Previously the install and uninstall commands unintentionally required the tool
package ids to specified in all lowercase for the install / uninstall to work.
Fixes#8682.
* Installation type
* Product Type
* Libc Release and Version
* Catch all
* Fix test
* Fix mac test
* Extract class
* Remove CharSet
* Remove extraneous assignment
* Missing space
* Typo
* Fix comment XML
* CR feedback
This commit implements a simple printable table that can be used to display
tabular data.
The columns of the table can specify a maximum width which will cause the
column text to wrap around to the next line.
* Move some projects to netstandard2.0
* Use version agnostic $(TargetFrameworkIdentifier) property to make changing versions easier since we only care about .NET Framework vs .NET Standard
* Add missing project to solution file
* Update TestPackageProjects.targets to use netstandard2.0 on non-Windows
This commit implements the `uninstall tool` command.
The `uninstall tool` command is responsible for uninstalling global tools that
are installed with the `install tool` command.
This commit heavily refactors the ToolPackage and ShellShim namespaces to
better support the operations required for the uninstall command.
Several string resources have been updated to be more informative or to correct
oddly structured sentences.
This commit also fixes `--version` on the install command not supporting ranges
and wildcards.
Fixes#8549.
Issue #8485 is partially fixed by this commit (`--prerelease` is not yet
implemented).
Extract packages to DotnetTools folder under sdk/{version}
Add new resolver to discover it
Add test to enforce package structure. It will fail when the structure
changed
* dotnet/release/2.1.3xx:
Update to aspnetcore 2.1.0-preview1-28275 and react to feed layout changes (#8611)
"ExternalRestoreSources" needs to be set in the docker container (#8602)
Signing nupkg contents (Cli.Utils and MSBuildResolver) along with the rest of the compiled assemblies.
Use satellites from roslyn package, not cli-deps-satellites
Update to roslyn 2.7.0-beta3-62612-07 for 2.1.1xx
Support TildeSlash expand (#8589)
Port Kernel Version telemetry to preview1
Do not create a directory with a trailing space; it cannot be deleted by conventional methods. (#8587)
Consume generic aspnetcore rpm installers
Insert NuGet Build 4.6.0-rtm-4918 into cli
Adding roslyn to automatic dependency flow through maestro.
Fixing update dependency by using the new APIs. We broke this when we updated the version of VersionTools.
MSBuild 15.6.81
Update SDK to 2.1.300-preview1-62608-07
MSBuild 15.6.80
Conflicts:
build/DependencyVersions.props
test/Microsoft.DotNet.ShellShim.Tests/ShellShimMakerTests.cs
* dotnet/release/2.1.2xx:
Use satellites from roslyn package, not cli-deps-satellites
Update to roslyn 2.7.0-beta3-62612-07 for 2.1.1xx
Conflicts:
build/DependencyVersions.props
src/redist/redist.csproj
src/tool_roslyn_satellites/tool_roslyn_satellites.csproj
* release/2.1.3xx: (51 commits)
Removing all references to a static 'aspnetpatch' Nuget.Config (#8556)
Updating the MSI Installation Note message. Also had to shift components around slightly to make it fit.
Fixing recent CLI test failures around ASP.NETcore in the orchestrated build (#8553)
The BuildTasksFeedTool version and the VersionTools version should be in sync to prevent incompatabilities between these two packages.
Update to aspnetcore 2.1.0-preview1-28228
Adding the VBCSCompiler to the list of signed files due to crossgen.
Ensure ASP.NET Core is included in macos .pkg installer and update to 2.1.0-preview1-28226
Remove obsolete F# satellite package
MSBuild 15.6.76
Update F# to match dev15.6 preview 4
Excluding shared framework assemblies from the Roslyn folder in the SDK.
Insert NuGet Build 4.6.0-rtm-4880 into cli
Updating Roslyn to 2.7.0-beta3-62529-05.
Update fsharp compiler to match preview 4
Insert NuGet Build 4.6.0-rtm-4862 into cli
MSBuild 15.6.70
Insert NuGet Build 4.6.0-rtm-4859 into cli
MSBuild 15.6.69
Update package reference
update fsharp compiler to match vs2017.6 preview 3
...
Conflicts:
build/DependencyVersions.props
* release/2.1.1xx: (45 commits)
Adding the VBCSCompiler to the list of signed files due to crossgen.
Remove obsolete F# satellite package
MSBuild 15.6.76
Update F# to match dev15.6 preview 4
Excluding shared framework assemblies from the Roslyn folder in the SDK.
Insert NuGet Build 4.6.0-rtm-4880 into cli
Updating Roslyn to 2.7.0-beta3-62529-05.
Update fsharp compiler to match preview 4
Insert NuGet Build 4.6.0-rtm-4862 into cli
MSBuild 15.6.70
Insert NuGet Build 4.6.0-rtm-4859 into cli
MSBuild 15.6.69
Update package reference
update fsharp compiler to match vs2017.6 preview 3
Insert NuGet Build 4.6.0-rtm-4825 into cli
Fixing the prefercliruntime asset
Updating the SDK dependency to 15.5.0-preview-62518-04 to fix the signing issue
Updating the channel to release/2.1.1xx. We can manually update release/2.0 if necessary, but LTS is always updated every time we release.
MSBuild 15.6.54
Updates the TestPlatform to 15.6.0-preview-20180109-01
...
Conflicts:
build/BranchInfo.props
build/Branding.props
build/DependencyVersions.props
build/NugetConfigFile.targets
build/Version.props
build/package/Installer.DEB.proj
build/package/Installer.DEB.targets
build/package/Installer.RPM.targets
build_projects/dotnet-cli-build/dotnet-cli-build.csproj
packaging/osx/clisdk/resources/cs.lproj/conclusion.html
packaging/osx/clisdk/resources/de.lproj/conclusion.html
packaging/osx/clisdk/resources/en.lproj/conclusion.html
packaging/osx/clisdk/resources/es.lproj/conclusion.html
packaging/osx/clisdk/resources/fr.lproj/conclusion.html
packaging/osx/clisdk/resources/it.lproj/conclusion.html
packaging/osx/clisdk/resources/ja.lproj/conclusion.html
packaging/osx/clisdk/resources/ko.lproj/conclusion.html
packaging/osx/clisdk/resources/pl.lproj/conclusion.html
packaging/osx/clisdk/resources/pt-br.lproj/conclusion.html
packaging/osx/clisdk/resources/ru.lproj/conclusion.html
packaging/osx/clisdk/resources/tr.lproj/conclusion.html
packaging/osx/clisdk/resources/zh-hans.lproj/conclusion.html
packaging/osx/clisdk/resources/zh-hant.lproj/conclusion.html
packaging/windows/clisdk/bundle.wxl
scripts/obtain/dotnet-install.ps1
scripts/obtain/dotnet-install.sh
src/tool_fsharp/tool_fsc.csproj
test/Microsoft.DotNet.Cli.Utils.Tests/GivenAProjectToolsCommandResolver.cs
test/Microsoft.DotNet.Cli.Utils.Tests/Microsoft.DotNet.Cli.Utils.Tests.csproj
* Make dotnet install tool atomic
Apply TransactionScope to tool install. It can handle the correct timing
of roll back and commit.
Convert existing ToolPackageObtainer and ShellShimMaker by passing logic
via lambda to an object that has IEnlistmentNotification interface. It
turns out the very clean.
Use .stage as staging place to verify of package content, and shim. It
should roll back when something is wrong. When there is ctrl-c, there
will be garbage in .stage folder but not the root of the package folder.
* release/2.1.3xx:
Infrastructure updates: CLI:master -> release/2.1.3xx (#8541)
Fixing the recent CLI test failures around ASP.NETcore in the orchestrated build: adding a 'dotnet-corefxlab' feed. (#8536)
Update BranchInfo.props
Update the branch info to be correct for 2.1
[Fixes#8511] Update ASP.NET Core certificate installation message
Excluding shared framework assemblies from the Roslyn folder in the SDK.
Updating Roslyn to 2.7.0-beta3-62529-06.
This commit adds the `--verbosity` option to the `install tool` command.
MSBuild/NuGet output is now controllable by the user and defaults to being "quiet".
This enables users to see warnings from NuGet that otherwise would be swallowed
unless NuGet returned a non-zero exit code. As a byproduct of this change, the
exception handling and error messages related to obtaining tool packages was
retooled. We no longer display `install tool` command line help for installation
failures, as it should only be displayed for command line syntax errors.
Fixes#8465.
* release/2.1.3xx:
Updating the WebSdk DependencyVersion to support local build
Fix non-fatal null exception when no extra parameters are passed.
Separate tool package and shim file location
Updating the CLI branding and version to 2.1.300.
* Conflicts
src/dotnet/commands/dotnet-install/dotnet-install-tool/InstallToolCommand.cs
run-build.ps1
build/Version.props
To ensure the mock has the same behavior the component has, run mock under the same tests the adapter has.
It is a common problem that moq has -- "everything is mocked out, you are not test anything"
* Integrate NuGet ask
* Update NuGet version. Rely on NuGet to filter TFM. And use asset.json to find entrypoint
* Update XML file to per TFM
* Add extra property to the fake project according to nuget
* Treat nuget fallback folder as offline cache for tool
* Require -g to install global tool
* Copy test asset during test project build
* Address code review on LockFileMatchChecker
* Get NETCorePlatformsImplicitPackageVersion from PackageDefinitions
* Edit and add missing loc
* Change LockFileMatchChecker to local function
* Adding comment
* Add to content instead of copy
* Download platform package instead
* disable SDK side implicit NuGetFallbackFolder
* merge loc
* Revert extra line
* use a prerelease platforms version that supports alpine
Implement a simple launcher tool for running new processes on Windows
- This application takes two parameters via the .exe.config configuration file
- entryPoint: required - the file path to the new process being launched
- runner: optional - the executable or interpretter used to launch the
entryPoint
- Update dotnet-install-tool to generate an exe instead of a batch script file
The original PR that implemented the source option was updated incorrectly
during review and the source option was accidentally not passed into the
package obtainer. This resulted in the source option not being respected from
the install command.
The tests passed because the only test coverage is at the package obtainer
level; tests of the install command itself were waiting on additional changes
to enable (still not yet merged).
The fix is to properly pass the source option through when obtaining the
package.
This commit fixes the error message that is displayed when the `install
tool` command is not given a package id to install. Previously, only
`packageId` was output, which was confusing.
Fixes#8381.
This commit moves the `tool` subcommand strings into its own resource
file, rather than putting them into the `install` command's resource
file.
This better follows the patterns of other commands, such as `add`, and
enables subcommands to isolate their string resources from one another.
As part of this commit, the `install tool` string resources were cleaned
up.
This commit adds the `--source` option to the `install tool` command. This
option is equivalent to the option of the same name for the `restore` command.
The option is forwarded to the underlying restore operation.
Fixes#8226.
Make use of the MSBuild distributed logger functionality and add a
forwarding logger. When in a multi-proc build, the forwarding logger
will decide which events to forward to the main node to be logged.
Without this, all events are routed and a perf penalty is incurred.
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
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.
Environment.GetEnvironmentVariable(PathName) means
Environment.GetEnvironmentVariable(PathName,
EnvironmentVariableTarget.Process)
However, I have added to .User. So the detection of path existence
failed. And it ends up adding the path again and again
This commit changes the run command such that it will now be `/nologo` and
`/verbosity:quiet` (by default) for the restore operation even if a target
framework is specified.
When a target framework is specified, a separate restore operation is performed
that does not pass `/nologo` and the default verbosity is used. The fix is to
ensure that the arguments used for the restore operation match those that are
used for the build operation.
Fixes#8118.
Currently the solution file written out by the `sln` command uses a
UTF-8 encoding without a BOM. This causes problems when the solution
file contains non-ASCII code points because Visual Studio and MSBuild
will not use a UTF-8 encoding when reading the solution file if the
BOM is omitted.
This commit causes the BOM to always be written when writing the
solution files.
Fixes#8184.
This commit adds support for specifying directories containing a single
project to both the `add reference` and `remove reference` commands.
Fixes issue #7343.
This commit adds support for specifying directories containing a single
project to both the `sln add` and `sln remove` commands.
Additionally, the output from `sln remove` has been improved to not
mention "project references".
Fixes issue #7343.
* Added support for generating the HTTPS development certificate on the
CLI first run experience.
* On first run, an HTTPS certificate will be set up on the current user
local store.
* The environment variable DOTNET_GENERATE_ASPNET_CERTIFICATE can be used
to turn the feature off.
* dotnet/release/15.5: (26 commits)
Fixing the reference to Microsoft.Build.Runtime from Cli.Utils.Tests. It was using the wrong package version property.
One more old style version package name needed to change in redist.
Fixing the versions of MSBuild and passing the right property to find roslyn files.
Use "15.5.179" for the other Microsoft.Build.* packages
Moving the 'MicrosoftBuildPackageVersion' forward.
Fixing "RuntimeFrameworkVersion"
Updating version naming convention.
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...
...
TestAssets/NonRestoredTestProjects/DotnetAddP2PProjects/EmptyItemGroup/EmptyItemGroup.csproj
TestAssets/NonRestoredTestProjects/DotnetAddP2PProjects/Lib/Lib.csproj
TestAssets/NonRestoredTestProjects/DotnetAddP2PProjects/Net452AndNetCoreApp10Lib/Net452AndNetCoreApp10Lib.csproj
TestAssets/NonRestoredTestProjects/DotnetAddP2PProjects/ValidRef/ValidRef.csproj
TestAssets/NonRestoredTestProjects/DotnetAddP2PProjects/WithDoubledRef/WithDoubledRef.csproj
TestAssets/NonRestoredTestProjects/DotnetAddP2PProjects/WithExistingRefCondOnItem/WithExistingRefCondOnItem.csproj
TestAssets/NonRestoredTestProjects/DotnetAddP2PProjects/WithExistingRefCondWhitespaces/WithExistingRefCondWhitespaces.csproj
TestAssets/NonRestoredTestProjects/DotnetAddP2PProjects/WithRefNoCondNonUniform/WithRefNoCondNonUniform.csproj
TestAssets/TestProjects/AppWithMultipleFxAndTools/MSBuildAppWithMultipleFrameworksAndTools.csproj
TestAssets/TestProjects/MSBuildAppWithMultipleFrameworksAndTools/MSBuildAppWithMultipleFrameworksAndTools.csproj
TestAssets/TestProjects/XunitMulti/VSTestXunitDesktopAndNetCore.csproj
build/BundledTemplates.props
build/DependencyVersions.props
build/NugetConfigFile.targets
build/Test.targets
build_projects/dotnet-cli-build/dotnet-cli-build.csproj
dir.props
run-build.sh
src/Microsoft.DotNet.Archive/Microsoft.DotNet.Archive.csproj
src/Microsoft.DotNet.Cli.Utils/Microsoft.DotNet.Cli.Utils.csproj
src/Microsoft.DotNet.Configurer/Microsoft.DotNet.Configurer.csproj
src/dotnet/dotnet.csproj
src/redist/redist.csproj
src/tool_fsharp/tool_fsc.csproj
test/ArgumentForwardingTests/ArgumentForwardingTests.csproj
test/EndToEnd/EndToEnd.csproj
test/Microsoft.DotNet.Cli.Sln.Internal.Tests/Microsoft.DotNet.Cli.Sln.Internal.Tests.csproj
test/Microsoft.DotNet.Cli.Utils.Tests/Microsoft.DotNet.Cli.Utils.Tests.csproj
test/Microsoft.DotNet.Tools.Tests.Utilities/Microsoft.DotNet.Tools.Tests.Utilities.csproj
test/Msbuild.Tests.Utilities/Msbuild.Tests.Utilities.csproj
test/binding-redirects.Tests/binding-redirects.Tests.csproj
test/dotnet-add-package.Tests/dotnet-add-package.Tests.csproj
test/dotnet-add-reference.Tests/dotnet-add-reference.Tests.csproj
test/dotnet-back-compat.Tests/dotnet-back-compat.Tests.csproj
test/dotnet-help.Tests/dotnet-help.Tests.csproj
test/dotnet-migrate.Tests/dotnet-migrate.Tests.csproj
test/dotnet-new.Tests/dotnet-new.Tests.csproj
test/dotnet-remove-package.Tests/dotnet-remove-package.Tests.csproj
test/dotnet-remove-reference.Tests/dotnet-remove-reference.Tests.csproj
test/dotnet-restore.Tests/dotnet-restore.Tests.csproj
test/dotnet-sln-add.Tests/dotnet-sln-add.Tests.csproj
test/dotnet.Tests/dotnet.Tests.csproj
* dotnet/release/2.0.0:
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.
Conflicts:
build/DependencyVersions.props
src/redist/redist.csproj
src/tool_roslyn/tool_roslyn.csproj
* compose all the parts
* Fix on obtain and shim maker for better end to end experience
* Fix error when there is space in the middle of path of nuget config
* Fix path in profile.d is the tmp home path during install
* better handle of ~home
* remove profile.d file in uninstall script
* Fix test since it looks up current directory
* folder structure inside nupkg to tools/TFM/RID/mytool.dll
* Add check for config file existence
* Rename name space to Microsoft.DotNet.ShellShim
* Rename name space to Microsoft.DotNet.ToolPackage
This commit adds the verbosity option to the run command.
This will be used in tests for visibility into what the run command is
doing.
The default verbosity is unaffected.
Fixes issue #7932.
* Tools shim maker and env path handling
Includes component:
* Given executable, create shim (all three OSs)
* Add executable path to Env PATH during first run
* including manual instruction when there is no access
Add ExeutablePackageObtainer
Given a tools package id, it can create a fake project and restore to correct folder
- DI, aka no circular dependency of commands
- Parser of config XML
- I try to create test nupkg at build time, so I can run test and debug
easily with VSCode. The code is in test csproj.
This commit fixes#6198.
When a project is removed from a solution using the `sln remove`
command, any projects in the solution with a project dependency (note:
this is different from a project reference) on the project should have
the project removed as a dependency.
The fix is to scan the projects in the solution and remove any
dependencies on the projects being removed. If the dependencies section
is empty after the remove, we skip serialization of the section like
Visual Studio does.
We were publishing a -debug zip with sdk code and symbols, but it was captured before
publishing was finished and had incorrect code content. Trying to use it would blow up
due to incorrect runtimeconfig.json.
Replace it with a -symbols zip that contains only symbols and that can be overlayed
over the main zip. This is just like the -langpack zip that has satellite assemblies.
Also add an option to leave the PDBs in the same directory/packages as code:
/p:SeparateSymbolsArchive=false. Setting this on local builds facilitates
debugging and profiling by removing the need to adjust symbol paths or copy PDBs
around.
It is not currently possible when there is a -f|--framework argument because
we cannot force a TargetFramework global property on to the restore evaluation.
Doing so completely breaks restore by applying the TargetFramework to all
projects transitively. The correct behavior is to restore for all frameworks,
then build/publish/etc for the given target framework. Achieving that still
requires two distinct msbuild invocations.
This also changes the verbosity of implicit restore from quiet to that
of the subsequent command (default=minimal). Similar to global properties,
we cannot specify a distinct console verbosity for the /restore portion of
the overall execution. For consistency, we apply the same verbosity change
to the case where we still use two separate msbuild invocations.
This also fixes an issue where the separate restore invocation's msbuild log
would be overwritten by the subsequent command execution. However, this remains
unfixed in the case where we still use two separate msbuild invocations.
We were taking care to set the console verbosity to minimal, but
only when no verbosity argument is passed. However, the default
verbosity for all CLI msbuild commands is already minimal and so
we can just get out of the way.
On Windows, `PathUtility.GetRelativePath` was not properly handling
paths that differed by case in the drive reference (e.g. "C:\" vs.
"c:\"). The fix was to add the missing case-insensitive comparison
argument.
Replaced uses of `PathUtility.GetRelativePath` with
`Path.GetRelativePath` where possible (requires 2.0.0+).
Additionally, `PathUtility.RemoveExtraPathSeparators` was not handling
paths with drive references on Windows. If the path contained a drive
reference, the separator between the drive reference and the first part
of the path was removed. This is due to `Path.Combine` not handling
this case, so an explicit concatenation of the separator was added.
This commit resolves issue #7699.
* dotnet/release/15.5: (21 commits)
Manually merging some changes that git merged wrong and deleted from the 15.5 branch.
Separating the 'legacy' URL construction from the 'current' URL construction methods and logic.
Use temporary path for fake deps.json in test
Use same build number for roslyn and F# satellites
Updating Roslyn satellites and SDK versions
Insert NuGet Build 4.5.0-preview2-4529 into cli
Update NuGet to 4529 (signed)
MSBuild 15.5.154
MSBuild 15.5.153
removed commented out config I'd meant to remove
added a way to specify the asp.net template versions
Porting 'dotnet-install.sh' from CLI:master to CLI:release/2.0.0
'NuGet.master.config' does not appear to be used.
Fixed tests
Update branch info to release/15.5
Updating the websdk version to 2.0.0-rel-20171010-665
Insert NuGet Build 4.5.0-preview1-4526 into cli
Update DependencyVersions.props
Updated version of TestPlatform to 15.5.0-preview-20170923-02
MSBuild 15.4.8
...
1. Publish satellites with a separate project and merge the resulting .deps.json
into (csc|vbc).deps.json
2. Move the build tasks satellites to the correct location next to main assembly
(one level higher than bincore\)