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.