Commit graph

1828 commits

Author SHA1 Message Date
John Beisner
504413205b
Merge pull request #8227 from janvorli/enable-alpine
Enable Alpine 3.6 CLI build
2017-12-20 13:17:12 -08:00
Livar
6ef4b794b2
Merge branch 'master' into merges/release/2.1-to-master-20171218-080046 2017-12-18 09:51:07 -08:00
Jan Vorlicek
1abd2d9209 Enable Alpine 3.6 CLI build
This change enables CLI build for Alpine 3.6 and also adds CI job for
it. It is mostly based on changes that were necessary to
enable building of rhel.6 CLI
2017-12-13 12:10:44 +01:00
Peter Huene
dcc99d6e33
Make restore performed by run command default to nologo and quiet.
This commit changes the run command such that it will now be `/nologo` and
`/verbosity:quiet` (by default) for the restore operation even if a target
framework is specified.

When a target framework is specified, a separate restore operation is performed
that does not pass `/nologo` and the default verbosity is used.  The fix is to
ensure that the arguments used for the restore operation match those that are
used for the build operation.

Fixes #8118.
2017-12-12 10:41:50 -08:00
Peter Huene
9671ba1de0
Write UTF-8 BOM for solution files.
Currently the solution file written out by the `sln` command uses a
UTF-8 encoding without a BOM.  This causes problems when the solution
file contains non-ASCII code points because Visual Studio and MSBuild
will not use a UTF-8 encoding when reading the solution file if the
BOM is omitted.

This commit causes the BOM to always be written when writing the
solution files.

Fixes #8184.
2017-12-08 14:34:26 -08:00
Peter Huene
1ddf5c87c7
Add support for accepting directories to add and remove reference commands.
This commit adds support for specifying directories containing a single
project to both the `add reference` and `remove reference` commands.

Fixes issue #7343.
2017-12-07 17:23:31 -08:00
Peter Huene
bcf13b93cc
Add support for accepting directories to sln add and remove commands.
This commit adds support for specifying directories containing a single
project to both the `sln add` and `sln remove` commands.

Additionally, the output from `sln remove` has been improved to not
mention "project references".

Fixes issue #7343.
2017-12-07 17:22:29 -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
90e254b9ed More fixes that were missing from the merge. 2017-12-07 13:23:27 -08:00
Livar Cunha
902904cdd6 Updating the msbuild version for Microsoft.Build.Runtime. 2017-12-07 13:13:43 -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
Livar Cunha
0f8dfedc6f Fixing the reference to Microsoft.Build.Runtime from Cli.Utils.Tests. It was using the wrong package version property. 2017-12-06 23:06:43 -08:00
Livar Cunha
cd86a4cac4 Merge remote-tracking branch 'dotnet/release/2.0.0' into merges/release/2.0.0-to-release/15.5-20171206-080037
* dotnet/release/2.0.0:
  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.

 Conflicts:
	build/DependencyVersions.props
	src/redist/redist.csproj
	src/tool_roslyn/tool_roslyn.csproj
2017-12-06 12:18:28 -08:00
William Lee
55f62d9d64
Add install tool command (#8132)
* 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
2017-12-04 14:13:24 -08:00
John Beisner
80f5d9f8c7 Even more package dependency re-names... 2017-12-04 13:20:37 -08:00
John Beisner
3cb1cca44d Third pass clean-up of package names. 2017-12-04 09:44:51 -08:00
John Beisner
4d694d2c56 Second pass clean-up of package names; resequencing download. 2017-12-04 09:31:28 -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
Peter Huene
4f7c76b4e4 Make --no-build imply --no-restore for run command.
This commit makes the `--no-build` option for the run command
automatically imply `--no-restore`.

Fixes issue #7472.
2017-11-28 16:01:18 -08:00
Peter Huene
ea85555a97 Add verbosity option to run command.
This commit adds the verbosity option to the run command.

This will be used in tests for visibility into what the run command is
doing.

The default verbosity is unaffected.

Fixes issue #7932.
2017-11-28 16:00:36 -08:00
Livar Cunha
3b1c67bb55 Fixing failing test. Now that the latest NetStandard.Library version moved to 2.0.1, the test needed to account for that. 2017-11-28 12:54:06 -08:00
Peter Huene
40b0e0fcec Make --no-build imply --no-restore for pack command.
This commit makes the `--no-build` option for the pack command
automatically imply `--no-restore`.

Fixes issue #7472.
2017-11-27 23:53:22 -08:00
Peter Huene
de10b22bcd Make --no-build imply --no-restore for test command.
This commit makes the `--no-build` option for the test command
automatically imply `--no-restore`.

Fixes issue #7472.
2017-11-27 23:06:48 -08:00
Livar Cunha
9e97e53446 Updating the CLI branding to 2.1.2 and ingesting the 2.0.4 runtime. 2017-11-27 11:36:12 -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
Livar
1239b21477
Merge pull request #8082 from peterhuene/fix-sln-remove-dependencies
Remove project dependencies when removing a project from a solution.
2017-11-21 21:52:26 -08:00
William Lee
584d3f0502
Global tools package obtain (#8035)
Add ExeutablePackageObtainer

Given a tools package id, it can create a fake project and restore to correct folder

- DI, aka no circular dependency of commands
- Parser of config XML
- I try to create test nupkg at build time, so I can run test and debug
easily with VSCode. The code is in test csproj.
2017-11-21 20:10:06 -08:00
Peter Huene
6210dab09c Remove project dependencies when removing a project from a solution.
This commit fixes #6198.

When a project is removed from a solution using the `sln remove`
command, any projects in the solution with a project dependency (note:
this is different from a project reference) on the project should have
the project removed as a dependency.

The fix is to scan the projects in the solution and remove any
dependencies on the projects being removed.  If the dependencies section
is empty after the remove, we skip serialization of the section like
Visual Studio does.
2017-11-21 18:20:05 -08:00
Livar Cunha
0ffc530aee Merge branch 'release/2.0.0-MSRC' into merge_release_200_MSRC
* release/2.0.0-MSRC:
  Update aspnetcore to 2.0.3 build 125
  Update aspnetcore to 2.0.3 build 124
  Update aspnetcore to 2.0.3 build 123
  Updating branding to 2.0.3, again
  Fixing closing tags in the DEB and RPM targets.
  Enabling our native installer tests to always get a 2.0.0 asp.net runtime store. We need to solve this in a more generic way in the future. But this will unblock the build for now.
  Update aspnetcore runtime store and LZMA to 2.0.3 build 120
  Adding the pre-release runtime version hack to RHEL as well. Basically, skip native installer tests when using a pre-release runtime.
  Adding the access token to the native installer URLs so that we can download those from protected locations when needed.
  Fixing the expected runtime version by the tool tests.
  Updating the runtime version.
  Updating the branding to 15.5.1
  Adding a test hack to allow the CLI to pass tests with a pre-release runtime for 2.0 TFM.
  Merged PR 82801: Allow non-anonymous storage account access for .lzma download
2017-11-03 09:58:08 -07:00
William Li
8c3b640540 Fix merge 2 2017-10-31 13:37:28 -07:00
Livar
2031c9cf33
Merge branch 'master' into merges/release/15.5-to-master-20171031-070033 2017-10-31 10:15:11 -07:00
Nick Guerrera
cd489a356a
Merge pull request #7896 from nguerrera/one-process-restore
Use msbuild /restore instead of a separate process
2017-10-27 15:33:09 -07:00
William Lee
cef9a90ad1
Hashed telemetry and event name change (#7919) 2017-10-27 10:58:25 -07:00
Nick Guerrera
35b7ad2789 Use msbuild /restore instead of separate invocations where possible
It is not currently possible when there is a -f|--framework argument because
we cannot force a TargetFramework global property on to the restore evaluation.
Doing so completely breaks restore by applying the TargetFramework to all
projects transitively. The correct behavior is to restore for all frameworks,
then build/publish/etc for the given target framework. Achieving that still
requires two distinct msbuild invocations.

This also changes the verbosity of implicit restore from quiet to that
of the subsequent command (default=minimal). Similar to global properties,
we cannot specify a distinct console verbosity for the /restore portion of
the overall execution. For consistency, we apply the same verbosity change
to the case where we still use two separate msbuild invocations.

This also fixes an issue where the separate restore invocation's msbuild log
would be overwritten by the subsequent command execution. However, this remains
unfixed in the case where we still use two separate msbuild invocations.
2017-10-26 16:01:34 -07:00
Nick Guerrera
8fead788d7 Fix dotnet build /clp:NoSummary 2017-10-26 06:37:45 -07:00
Nick Guerrera
20b0b820a8 Remove unnecessary handling of verbosity in RestoreCommand
We were taking care to set the console verbosity to minimal, but
only when no verbosity argument is passed. However, the default
verbosity for all CLI msbuild commands is already minimal and so
we can just get out of the way.
2017-10-24 15:04:24 -07:00
Peter Huene
03f0c51292 Fix relative path handling on Windows.
On Windows, `PathUtility.GetRelativePath` was not properly handling
paths that differed by case in the drive reference (e.g. "C:\" vs.
"c:\").  The fix was to add the missing case-insensitive comparison
argument.

Replaced uses of `PathUtility.GetRelativePath` with
`Path.GetRelativePath` where possible (requires 2.0.0+).

Additionally, `PathUtility.RemoveExtraPathSeparators` was not handling
paths with drive references on Windows.  If the path contained a drive
reference, the separator between the drive reference and the first part
of the path was removed.  This is due to `Path.Combine` not handling
this case, so an explicit concatenation of the separator was added.

This commit resolves issue #7699.
2017-10-24 11:23:52 -07:00
Livar Cunha
72eda50303 Merge branch 'release/2.0.0' into merge_release_200
* release/2.0.0:
  Separating the 'legacy' URL construction from the 'current' URL construction methods and logic.
  Use temporary path for fake deps.json in test
  MSBuild 15.4.8
  Insert SDK 2.0.2-vspre-20170927-1
2017-10-17 17:30:58 -07:00
Livar Cunha
e1916cc4dc Merge remote-tracking branch 'dotnet/release/15.5' into merges/release/15.5-to-master-20171016-070031
* dotnet/release/15.5: (21 commits)
  Manually merging some changes that git merged wrong and deleted from the 15.5 branch.
  Separating the 'legacy' URL construction from the 'current' URL construction methods and logic.
  Use temporary path for fake deps.json in test
  Use same build number for roslyn and F# satellites
  Updating Roslyn satellites and SDK versions
  Insert NuGet Build 4.5.0-preview2-4529 into cli
  Update NuGet to 4529 (signed)
  MSBuild 15.5.154
  MSBuild 15.5.153
  removed commented out config I'd meant to remove
  added a way to specify the asp.net template versions
  Porting 'dotnet-install.sh' from CLI:master to CLI:release/2.0.0
  'NuGet.master.config' does not appear to be used.
  Fixed tests
  Update branch info to release/15.5
  Updating the websdk version to 2.0.0-rel-20171010-665
  Insert NuGet Build 4.5.0-preview1-4526 into cli
  Update DependencyVersions.props
  Updated version of TestPlatform to 15.5.0-preview-20170923-02
  MSBuild 15.4.8
  ...
2017-10-16 15:42:40 -07:00
Livar Cunha
27aa698710 Manually merging some changes that git merged wrong and deleted from the 15.5 branch. 2017-10-13 09:56:08 -07:00
Livar Cunha
1943ddc57f Merge remote-tracking branch 'dotnet/release/2.0.0' into merges/release/2.0.0-to-release/15.5-20171013-070028
* dotnet/release/2.0.0:
  Use temporary path for fake deps.json in test
  Porting 'dotnet-install.sh' from CLI:master to CLI:release/2.0.0
  'NuGet.master.config' does not appear to be used.
  Reverting previous change to: 'NuGet.master.config'
  Moving the runtime version to 2.0.0 for the SDK.
  Revert release/2.0.0 back to 1bcee43995
  Adding the unified transport NuGet feed.
  Keeping the branding for release/2.0.0 at 2.0.3.
  MSBuild 15.4.8
  Insert SDK 2.0.2-vspre-20170927-1
2017-10-13 09:04:58 -07:00
Nick Guerrera
e59fd7af46 Use temporary path for fake deps.json in test
(cherry picked from commit 796b4a06e7)
2017-10-12 16:32:12 -07:00
Livar Cunha
f6a07bcb39 Merge branch 'release/2.0.0' into merge_release_200
* release/2.0.0:
  Porting 'dotnet-install.sh' from CLI:master to CLI:release/2.0.0
  'NuGet.master.config' does not appear to be used.
  Reverting previous change to: 'NuGet.master.config'
  Moving the runtime version to 2.0.0 for the SDK.
  Revert release/2.0.0 back to 1bcee43995
  Adding the unified transport NuGet feed.
  Update cli-deps-satellites
  Fix up roslyn satellite assembly handling to match new insertion mechanism
2017-10-12 14:56:23 -07:00
faahmad
273f4bc4a5 Fixed tests 2017-10-11 12:21:59 +05:30
Livar Cunha
fead8521c3 Moving the runtime version to 2.0.0 for the SDK.
(cherry picked from commit e24b53dda7)
2017-10-09 13:59:09 -07:00
Nick Guerrera
ddae0875cf Revert release/2.0.0 back to 1bcee43995
There were incorrect merges from release/15.5 to release/2.0.0 since then
2017-10-09 13:55:13 -07:00
Livar Cunha
e11c66e7f0 Fixing the expected runtime version by the tool tests. 2017-10-09 12:35:38 -07:00
Nick Guerrera
796b4a06e7 Use temporary path for fake deps.json in test 2017-10-06 10:53:21 -07:00
Livar Cunha
e24b53dda7 Moving the runtime version to 2.0.0 for the SDK. 2017-10-03 16:46:15 -07:00
Ashley Hauck
97b027b232 Remove CscToolPath 2017-10-02 12:26:52 -07:00