Commit graph

69 commits

Author SHA1 Message Date
Peter Huene
3e962bc131
Make CliFolderPathCalculator a static class.
The `CliFolderPathCalculator` class implements no interface and has no instance
fields.

This commit therefore makes it a static class.
2018-05-22 17:34:39 -07:00
Livar Cunha
e5e2256ae9 Addressing code review comments by making the Configuration class's fields readonly. 2018-05-17 14:13:14 -07:00
Livar Cunha
b7a8c6d12f Introducing a Config object as a input to the FirstRunConfigurer. This allows us to decide what operations we want to
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.
2018-05-10 15:27:12 -07:00
William Li
b0ee5db411
consume bring your own shim(byos) (#9018)
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.
2018-04-10 15:42:50 -07:00
Peter Huene
19090744cb
Fix failure to add tools path on restricted Windows environments.
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.
2018-04-03 16:27:01 -07:00
Peter Huene
3488a84c35
Implement buildserver shutdown command.
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.
2018-03-30 15:13:52 -07:00
Peter Huene
aab9af71b8
Implement uninstall tool command.
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).
2018-02-19 22:46:16 -08:00
William Lee
5fa558a2ed
Atomic install tool (#8518)
* 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.
2018-02-06 13:38:06 -08:00
William Li
36c01137ad Separate tool package and shim file location 2018-01-22 16:30:52 -08:00
Javier Calvarro Nelson
ad8f3da826 ASP.NET Core HTTPS development certificate support
* 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.
2017-12-07 14:31:00 -08:00
Livar Cunha
5a0e95897e Merge remote-tracking branch 'dotnet/release/15.5' into merges/release/15.5-to-master-20171206-080040
* 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
2017-12-07 09:55:12 -08:00
John Beisner
f0abfb6b12 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 2017-12-01 20:07:48 -08:00
William Lee
cc80ed43e0
Tools shim maker and env path handling (#8085)
* 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
2017-11-27 10:45:43 -08:00
Daniel Plaisted
107252ebe7 Merge upstream changes 2017-08-28 11:09:19 -07:00
Nick Guerrera
497f6c5b0c Fix warnings in test projects 2017-08-25 20:17:58 -07:00
Daniel Plaisted
ae0aa8ed24 Move dir.props to auto-imported Directory.Build.props
This is necessary for setting the intermediate output path to work correctly
2017-08-24 15:46:45 -07:00
William Li
081f208942 Add telemetry data points for .NET Core 2.0 2017-07-27 09:55:40 -07:00
Livar Cunha
20f0dac6b2 Making a change that will cause the first run notice to always show up in the first run of the CLI, even when it is installed by native installers. 2017-07-25 22:33:54 -07:00
Livar Cunha
cd984f5b50 Create the Dotnet User Profile folder when running the first experience, if the folder does not exist, if will fail the first run because it will fail to create the first notice sentinel. 2017-06-24 22:59:35 -07:00
Nick Guerrera
6b0cd0e52f Make configurer unit tests pass on localized setup 2017-06-21 12:44:34 -07:00
Livar Cunha
a357fd7bca Removing NuGetConfig from the first run experience and replacing the sentinel with the FirstUseNoticeSentinel when needed. 2017-06-20 10:59:23 -07:00
Livar Cunha
529d7caa79 Moving the expanding fallback folder to the dotnet folder hive. The folder will be expanded at sdk/NuGetFallbackFolder. 2017-06-20 10:59:23 -07:00
Omair Majid
34b44b999b Avoid repeating the first-run message if lzma archive is missing
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.
2017-06-19 18:08:05 -04:00
Livar Cunha
0a4a0a082c Updating the SDK. Mostly, had to change PackageTargetFallback to AssetTargetFallback. 2017-06-14 00:27:26 -07:00
Livar Cunha
f4bb13acaa Merge branch 'rel/1.1.0' into merge_rel_110
* 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
  ...
2017-06-01 09:43:31 -07:00
Livar Cunha
822b290bb6 Updating the global.json creation to use the IFile interface and adding a unit test to cover it. 2017-05-22 09:51:30 -07:00
Livar Cunha
f67a72d9c4 Making restore use a config file so that it does not use fallback folders that may exist in the machine. 2017-05-22 09:42:40 -07:00
Livar Cunha
3d0089552c Fixing failures in tests when the user has a fallbackfolder setup on this machine already. These failures are again due to the fact that --packages are not populated when the packages are found in the fallback folder. 2017-04-03 22:15:40 -07:00
Livar Cunha
0c1af8a2fe Enabling E2E tests by setting HOME and USERPROFILE env variables. This will cause the NuGet.Config and fallback folder to be extract to the location in those variables during the tests. Also refactored all NuGet path calculators for the first run to a single place. 2017-03-30 11:28:01 -07:00
Livar Cunha
a46237784e Modified the build script to generate the lzma archive without the nupkgs. Modified the configurer to upsert NuGet.Config with the fallback folder info and to extract the fallback folder. Added unit tests for all this. Next step: update E2E tests. 2017-03-30 00:11:17 -07:00
Piotr Puszkiewicz
c56ef29300 Remove remaining unnecessary P2P's 2017-03-02 20:05:12 -08:00
Piotr Puszkiewicz
b62dd924f8 Version as Metadata in remaining test projects 2017-03-02 19:45:55 -08:00
Mike Lorbetske
e145ca88e4 Placeholder for template update 2017-02-21 16:28:47 -08:00
Livar Cunha
9f2ca9989c Introducing a in DependencyVersions to facilitate these updates in the future. Also aligns with master. 2017-02-10 23:05:16 -08:00
Livar Cunha
1d61bf97ed Updated the Shared Framework to 1.1.1 and 1.0.4. 2017-02-10 23:05:16 -08:00
Eric Erhardt
454dd10f8d Update dotnet new to use the new 2.0 templates. 2017-02-09 10:18:39 -06:00
Piotr Puszkiewicz
b0a5d53ed5 Merge rel/1.0.0 to master 2017-02-06 12:43:57 -08:00
Eric Erhardt
9f0bb778a1 Merge rel/1.0.0 into master. 2017-02-01 14:32:59 -06:00
seancpeters
2d93968a88 New3 integration (#5430)
* 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
2017-01-31 17:31:37 -08:00
Eric Erhardt
fd65cb03b6 Update dotnet new to generate a "2.0" project. 2017-01-29 09:46:46 -06:00
jonsequitur
9824fa945b FluentAssertions 4.18.0 2017-01-26 14:48:40 -08:00
jonsequitur
d55be626a9 netcoreapp1.1 fixes 2017-01-26 14:48:39 -08:00
Eric Erhardt
cfb4cc3cb9 Update tests to netcoreapp1.1. 2017-01-26 14:48:39 -08:00
Eric Erhardt
d4153815d5 Update the CLI to netcoreapp2.0. 2017-01-26 07:28:59 -06:00
Eric Erhardt
0cfc54c377 First time experience populating the NuGet cache with 1.1 packages. 2017-01-06 17:45:34 -06:00
Livar Cunha
b41eb43883 Updating our projects and test assets to work with the latest SDK. 2017-01-05 19:44:52 -08:00
Eric Erhardt
a80e8fa636 Update Microsoft.NETCore.App to 1.0.3. 2017-01-05 08:57:53 -06:00
Justin Goshi
b72d625168 Include ASP packages in offline cache (#5124)
* 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
2016-12-27 11:28:24 -10:00
Livar Cunha
3b081316ad Updating the SDK version in the BundleSdks.props and adding dirs.props back to all csprojs but the TestAssets ones. 2016-12-20 16:38:04 -08:00
Livar Cunha
fadacc0aac Updating the projects files in the repo to use the SDK attribute. 2016-12-20 15:52:50 -08:00