do as part of first run based on whether this is the invoke-reportsuccess from a native installer or a regular command
being invoked for the first time. This in turn allows us to ignore the skip first run variable on native installers and
expand the cache always in those cases.
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.
This commit implements the `buildserver shutdown` command that can be used to
shutdown MSBuild, VB/C# compiler, and Razor build servers.
By default, all three build servers are shut down. Options can be passed to
shut down a subset of the build servers.
Fixes#8185.
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).
* 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.
* 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
* 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
If the LZMA archive is missing, the first-run message is printed every time.
This commit fixes that.
Split the first-run message into two pieces:
- The first-run (welcome and telemetry) message is printed only once, no matter
whether the cache was primed or not.
- The cache-priming message is printed only if the cache is avaialble.
Otherwise skip the cache introduction and the ccache priming operation.
* rel/1.1.0: (41 commits)
Updating the Sdk to one that includes the error surfacing work.
Update NuGet to 4.3.0-preview2-4082
Update NuGet to 4.3.0-preview1-4081 and SDK to corresponding 1.1.0 based version
Updating MSBuild to 15.3.0-preview-000246-05 to match VS.
Updating the global.json creation to use the IFile interface and adding a unit test to cover it.
Making restore use a config file so that it does not use fallback folders that may exist in the machine.
Dropping a global.json when running the first run experience with a version that matches the version of the CLI being used in the command that triggered the first run.
Updating the websdk version for 1.0
Trying to fix the opensuse42 test failure, where we tried to invoke a tool that target 1.0.4 where the 1.0 runtime is not available.
Pinning the stage0 to the last build out of rel/1.0.1 and adding a project to download 1.0 dependencies for test assets.
Updating the branding to rel/1.1.0
Dummy commit.
Adding the access token to the lzma url.
Dummy change to force a build.
Reverting the msbuild version to the release version.
Adding the web feed to nuget.config, as some packages failed to mirror and we need a build ASAP.
Updating the msbuild, SDK and Web SDK versions.
Dummy commit to kick off the build.
the FSharp.NET.Sdk version `-bundled` contains only the Sdk dir
bump f# sdk package version
...
* Partial conversion to new3. 2 tests fail due to browserlink not restoring.
* new cache initialization
* More lzma changes, and removed a razor ref from templates
* Ephemeral hive flag added to tests that need it
* Updated the template engine version to build against. Minor code cleanup
* Config changes to make template versions separate from template engine versions
* Changed dotnet new versioning to use Product.Version
* Fixing Archiver.csproj
* Fixing dotnet new test.
* Fix LZMA Package Source Condition
* Workaround for newline differences.
* fixed tests with changed template parameters. Added a new3 template non-match test
* Archive asp.net package references
* Archive asp.net package references
* Change the hash input so it's the same on all platforms
* Address PR comments