Commit graph

1983 commits

Author SHA1 Message Date
Peter Huene
b24e9f4cec
Add unit tests for dotnet complete.
This commit adds a few simple unit tests to cover the `dotnet complete`
command.

It only checks the top-level output, integration with the `new`
command from the templating engine, and the custom `nuget` command parser that
is solely intended for use with `dotnet complete`.
2018-05-16 17:19:06 -07:00
Peter Huene
6f184070f0
Improve command completion.
This commit improves command completion by updating the `new` and `nuget` parsers to
match their current supported syntax.  Removes the unnecessary description
strings that were not used (these commands are parsed by assemblies external to
the CLI). The top level options are also sync'd to the currently supported
options.

Additionally, it unhides the `msbuild` and `vstest` commands so that `dotnet
complete` suggests them.

Fixes #9286.
2018-05-16 14:07:27 -07:00
John Beisner
08b20ef268
Merge pull request #9275 from dotnet/merges/release/2.1.3xx-to-release/2.1.4xx
Merge release/2.1.3xx to release/2.1.4xx
2018-05-15 09:17:36 -07:00
Peter Huene
1feaa0385a
Fix incorrect default VSTest verbosity level.
Commit 10289504a8 changed the default verbosity
option used for MSBuild from `-v:quiet` to `-verbosity:quiet`.  This triggered a
match that was being done against arguments starting with `-verbosity` to
forward the value to VSTest via the `VSTestVerbosity` property.  The result is
that VSTest is using a default verbosity of `quiet`, suppressing error output
that users expect to see.

The fix is to change the check to only match against user-supplied options.
The default level the command uses for MSBuild is not forwarded to VSTest.

Fixes #9229.
2018-05-11 20:03:24 -07:00
Livar
11f2843f7b
Merge pull request #9252 from dotnet/merges/release/2.1.3xx-to-release/2.1.4xx
Merge release/2.1.3xx to release/2.1.4xx
2018-05-11 10:16:04 -07:00
John Beisner
da7da0b018
Merge pull request #9227 from dotnet/merges/release/2.1.3xx-to-release/2.1.4xx
Merge release/2.1.3xx to release/2.1.4xx
2018-05-09 14:06:02 -07:00
Peter Huene
299589ff14
Merge pull request #9214 from peterhuene/fix-tool-path-from-installers
Fix adding tools directory to PATH for native installers.
2018-05-09 10:29:25 -07:00
John Beisner
7373d4d309
Fixing CI build breaks for new CI legs; CLI:release/2.1.3xx (#9202)
* Fedora 27, openSUSE 43.2, and Ubuntu 18.04 should not build native installer packages nor
"IncludeSharedFrameworksForBackwardsCompatibilityTests"

* Formatting...

* Skip test: 'ItRollsForwardToTheLatestVersion'
2018-05-08 10:05:21 -07:00
Peter Huene
0f0f70ce48
Fix adding tools directory to PATH for native installers.
This commit fixes adding the tools directory to the user's PATH for the native
installers.

The issue was a regression caused by #8886.  The change used a "no-op" sentinel
file that reported it existed.  This "no-op" sentinel was used for the native
installers.  Unlike the other "no-op" sentinels used by the native installer,
we do want PATH to be modified by the native installer.

The fix is to change the "no-op" sentinel to report the file doesn't exist, but
also to not to attempt to create the file.

This fixes #9208.
2018-05-07 16:35:29 -07:00
Livar
6cc9ce45e8
Merge pull request #9028 from livarcocc/add_remove_messages
Updating the description of add/remove nuget packages and references and list
2018-05-07 11:24:58 -07:00
Tanner Gooding
6d6bf64f28 Merge remote-tracking branch 'dotnet/release/2.1.3xx' into merges/release/2.1.3xx-to-release/2.1.4xx 2018-05-07 08:20:23 -07:00
Tanner Gooding
481e4a19b3
Merge pull request #9013 from dotnet/merges/release/2.1.2xx-to-release/2.1.3xx
Merge release/2.1.2xx to release/2.1.3xx
2018-05-04 11:00:39 -07:00
Tanner Gooding
4c7d1df5b3 Revert "Adding a work around for publishing self-contained apps to RIDs that are not available for Microsoft.NETCore.App 2.0.0."
This reverts commit 370243ab81.
2018-05-03 15:50:19 -07:00
Tanner Gooding
a8856ddccc Merge remote-tracking branch 'dotnet/release/2.1.2xx' into merges/release/2.1.2xx-to-release/2.1.3xx 2018-05-03 15:24:39 -07:00
Livar Cunha
661f058fed Updating the description of add/remove nuget packages and references and list. Also updating the parameter placeholder for add/remove reference. 2018-05-01 16:06:38 -07:00
William Li
46d4b71814 Add additional tools to help text 2018-05-01 14:28:15 -07:00
Peter Huene
67ecb5ac65
Merge pull request #9161 from v-zbsail/loc_20180427_release_2.1.3xx
LOC CHECKIN | dotnet/cli release/2.1.3xx | 20180427
2018-05-01 11:25:45 -07:00
William Li
57d065e43d
Correct dotnet list description (#9174)
After dotnet tool list moved out of dotnet list, the description has not been updated.
2018-05-01 10:24:40 -07:00
William Li
d681933b87
Rename --source-feed to --add-source (#9164)
* Rename to add-source
2018-05-01 10:21:00 -07:00
Peter Huene
faa7a7e47c
Fix tool package unit test to use the correct resource string.
The `GivenFailedPackageInstallWhenRunWithPackageIdItShouldFail` test should
match against `ToolInstallationFailedWithRestoreGuidance` and not
`ToolInstallationFailed`.  This passed prior to the LOC update because
the former started with the latter and a "contains" match was being performed.
2018-04-30 21:49:45 -07:00
Peter Huene
b23259c30f
Merge pull request #9160 from peterhuene/fix-pid-file-share-mode
Fix Razor server shutdown on Windows.
2018-04-30 14:47:31 -07:00
Peter Huene
eaf5e95996
Merge pull request #9153 from peterhuene/quote-msbuild-properties
Fix MSBuild invocation to quote property option values.
2018-04-27 16:52:02 -07:00
Peter Huene
b2b3947c68
Fix Razor server shutdown on Windows.
On Windows, the Razor server correctly creates the pid file with
`FileAccess.Write` and `FileOptions.DeleteOnClose`.  This requires a share mode
of `FileShare.Write | FileShare.Delete` to open.  However, the
`dotnet build-server shutdown` command was opening the file with
`FileShare.Read`.  As a result, an `IOException` was being thrown and was not
handled.

This change first opens the file with the appropriate share access and also
properly handles a failure to access or read the contents of the pid file.

Additionally, an integration test was added to test that Razor server shutdown
works as expected.

Fixes #9158.
2018-04-27 13:52:17 -07:00
Peter Huene
f9b939fe89
Fix MSBuild invocation to quote property option values.
This commit ensures that any `/property` option's value is surrounded by quotes
to allow MSBuild to properly interpret special characters like semicolons.

Users familiar with MSBuild expect `/property:Name="Value"` to handle
semicolons. However, since `dotnet` parses the command line first, the
quotes get processed by its command line parser.  This results in
`/property:Name=Value` being passed to MSBuild, which will not parse a "Value"
containing a semicolon correctly.

Since it is safe to always quote the property value for this option, this fix
simply ensures that the value is surrounded by quotes.

This fixes the issue for all commands that forward arguments to MSBuild.

Fixes #7791.
2018-04-26 14:38:21 -07:00
Peter Huene
b9597913dc
Fix --source-feed option for tool install and update commands.
Commit 9cc2b7cd2f regressed the `--source-feed`
option so that it no longer accepted relative paths.  Because the option is now
saved to the temp project file, any relative paths specified by the
`--source-feed` option were made relative to the temp project path and not from
the current working directory of where dotnet was run.

The fix is to use `Path.GetFullPath` of the `--source-feed` option, provided
the option specified was not an absolute URI.

Fixes #9132.
2018-04-24 20:43:14 -07:00
Livar
355b08befd
Merge branch 'release/2.1.4xx' into merges/release/2.1.3xx-to-release/2.1.4xx 2018-04-24 14:20:28 -07:00
William Li
270fc4428a
do not set BaseIntermediateOutputPath in temp project of dotnet install (#9122)
Should use MsBuildProjectExtensionsPath instead.

Change the property passin by project file instead of command line. It is more reliable passing path in xml and also the timing of MsBuildProjectExtensionsPath is controlled. (Before loading SDK)
Change mock fake project to use “;” instead, since c:\path contains “:”.
2018-04-24 10:19:27 -07:00
John Luo
441a470f54 Add bundled aspnetcore runtime framework versions
- Add integration test for implicit Microsoft.AspNetCore.App versions
2018-04-23 00:33:33 -07:00
Nick Guerrera
ea08319a65 Unblock build
Test build was causing restore and build in same evaluation, which was
always incorrect, but with a recent change to sdk, it will always fail
outright instead of sometimes getting lucky enough for it not to matter.
This was therefore a breaking change and we will discuss separately how
to handle it. This takes the bad pattern out of the test build to unblock
the build.
2018-04-20 16:43:41 -07:00
Livar
dc088918f9
Merge pull request #9106 from dotnet/merges/release/2.1.1xx-to-release/2.1.2xx
Merge release/2.1.1xx to release/2.1.2xx
2018-04-20 15:12:18 -07:00
Wes Haggard
65d5730631 Replace alpine with linux-musl builds
We still build linux-musl on the alpine OS but we no longer
produce a alpine installer/tar file instead we just have the
linux-musl version.
2018-04-20 13:23:00 -07:00
Peter Huene
1ade191cb6
Implement Razor server discovery by pid file.
Previously, Razor server discovery for the `build-server shutdown` command was
implemented by invoking MSBuild on a project file in the current directory to
evaluate the path to the Razor server dll.  This was problematic since it would
only discover a single running Razor server instance and required that the user
run the `build-server shutdown` command from a specific location.

Razor's server now writes a "pid file" to a well-known location
(`~/.dotnet/pids/build`) which the command can now enumerate to discover, and
shutdown, the running Razor servers.

This commit changes the Razor server discovery to use the pid files and removes
the requirement that users need to run the command in specific directories to
work.

Fixes #9084.
2018-04-20 10:49:31 -07:00
Nate McMaster
2d008aa4f7
Add tests that assert the dependencies of the dotnet-sdk rpm and deb files 2018-04-18 22:49:21 -07:00
Peter Huene
3f1ab372b4
Rename buildserver command.
This commit renames the `buildserver` command to `build-server`.

Fixes #9075.
2018-04-17 17:04:12 -07:00
William Li
ae75392078
Merge pull request #9079 from wli3/help-text-02
Help text improves
2018-04-17 12:21:39 -07:00
William Li
854feefe6f
Give a different error to guide use to install via global tools (#9070)
Give a different error to guide use to install via global tools so, if several bundled DotnetTools cannot finish source build on time. The user can use global tools to get it.

The original plan that adding a different resolver is hard due to resolver can only find dll that will be used to spawn a process. However, the command constructor will give an error message when resolver find null. By adding a different error when the command name is part of the list, it can achieve the same goal.
2018-04-17 12:21:20 -07:00
William Li
fd66168922 Error message has instruction to help investigate from NuGet error message 2018-04-16 21:42:50 -07:00
William Li
6851961c16 Better help text on dotnet tool 2018-04-16 10:51:43 -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
William Li
2f01bb4fad
Add TryGetMostFitRuntimeIdentifier (#8997) 2018-04-06 17:39:58 -07:00
William Li
cbd6434c8b Adapt to no config file Apphost shim
Instead of writing the config file. Embed the relative path, instead of only the file name of app binary, to the AppHost itself.
2018-04-06 12:23:05 -07:00
Livar
7cb7535bae
Merge branch 'master' into merges/release/2.1.3xx-to-master 2018-04-06 09:05:57 -07:00
Nick Guerrera
4956bfea8c
Merge pull request #8996 from nguerrera/publish-no-build
Implement `dotnet publish --no-build`
2018-04-05 23:43:02 -07:00
Nick Guerrera
60e798598d Add test cases per PR feedback 2018-04-05 17:58:38 -07:00
Livar Cunha
2e2a8d6179 Merge branch 'release/2.1.1xx' into merge_1xx_into_2xx
* release/2.1.1xx:
  Fixing another typo in that is breaking RHEL.
  Fix a typo in the rpm.targets when testing the rpm generated packages.
  Update to aspnet 2.0.7 build 230
  Producing an empty commit to trigger a rebuild of the CLI
  Fix AspNetCoreRuntimeBuildDropFeed to use CoreSetupBlobRootUrl
  Adding a work around for publishing self-contained apps to RIDs that are not available for Microsoft.NETCore.App 2.0.0.
  Reverse the order in which old runtime stores are listed
  Update to ASP.NET Core 2.0.7 build 228
  Moving the opensuse 43.2 docker file to the right folder.
  Updating the CLI branding to 2.1.105, to go over the 104 release we will have to do for NuGet. Also, fixed the branding of the runtime in our installers to 2.0.7.
  Updating the runtime to 2.0.7 and the CLI branding to 2.1.104.
  Update SDK to 2.1.100-preview-62730-07
  Add msbuild myget.org feed
  MSBuild 15.6.84

 Conflicts:
	build/Branding.props
	build/DependencyVersions.props
	build/NugetConfigFile.targets
	build/Version.props
	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
2018-04-05 09:40:35 -07:00
Livar
4c948fefcc
Merge branch 'master' into merges/release/2.1.3xx-to-master 2018-04-05 09:09:45 -07:00
Nick Guerrera
b6174af511 Implement dotnet publish --no-build 2018-04-04 15:03:29 -07:00
Livar
a7bfaacf99
Merge branch 'master' into merges/release/2.1.3xx-to-master 2018-04-04 10:16:22 -07:00
Livar
721c068376
Merge branch 'release/2.1.2xx' into merges/release/2.1.1xx-to-release/2.1.2xx 2018-04-04 10:15:45 -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