If there are shims packaged by convention in nupkg. Shim Repository will simply copy it to the right location.
The query interface ToolPackageInstance will be in charge of finding the shim folder and filter the right RID. Shim Repository will pick the right file after the folder is located since Shim Repository knows the shim name and it also book keep the files at uninstallation.
During development, due to the wrong adapter level. The mock duplicated too much logic. So, I corrected the abstraction level to lower (only create shim). And replaced the existing mock with a much smaller one without any atomic control and file move, copy logic. At the same time. The chmod, which is a IO action, causes problem during tests. So I added adapter layer to it and put it in Util.
On environments where registry access is disabled, the first run experience
fails because it could not add the tools path to the user's environment.
This fix properly handles the security exception by printing a warning and
continuing. Users will have to manually add the PATH environment variable to
their environments to prevent `dotnet tool install` from printing PATH
instructions.
A new file sentinel is added to track whether or not the PATH has been
modified. The first run experience also now correctly skips modifying the PATH
if `DOTNET_SKIP_FIRST_TIME_EXPERIENCE` is set.
Fixes#8874.
* Publish app host to folder under SDK
* Use carried apphost as shim
* Remove full framework launcher
* Fix test run command issue
* Use latest release/2.1 build
* Test with 32 bit env
* Add missing return
* Update to latest prodcon build
* Add xlfs
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"
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
* 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