* Change to escape string via XML
* tool-path option -- "Session tool"
From the beginning design, shim and packageInstaller take package location from constructor and don't have assumption anymore. From previous discussion, tool-path will simply change global location to the one user want, and everything else is the same.
However, this "override" need to happen during the call, that means InstallToolCommand will create different shim and packageInstaller object according to the tool-path during the call instead of constructor DI.
* global package location change
* block of leading dot as command name
* Localization of tool-path option
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).
* 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
* 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.
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.