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
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.
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.
This commit adds support for specifying directories containing a single
project to both the `add reference` and `remove reference` commands.
Fixes issue #7343.
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.
* 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
* 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
* 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
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.
* 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
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.
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.
* 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
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.
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.
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.
* 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
* 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
...
* 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
* 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
This change enables RHEL 6 support. It also adds a new command line option to the
run-build.sh script that enables passing in a folder containing a bootstrap CLI.
This helps in bringup of new target platforms.
* dotnet/rel/1.1.0:
Enable VB dotnet new test cases
Fix fedora.23 dockerfile
Updating the ReadMe: "rel-1.0.1" to "rel-1.1.0"
Update Roslyn to 2.3.0-beta4-61830-03
update nuget to 4.3.0-preview4-4258
Issue https://github.com/dotnet/cli/issues/7091
Add internal command dotnet internal-reportinstallsuccess. Before
Windows installer finishes, run this command instead of dotnet new. It
will trigger the first time experience as well as sending telemetry with
installer exe name.
This command blocks to ensure that the webservice call completes.
* dotnet/release/2.0.0: (27 commits)
Updating the runtime to pick up the satellite assembly host fix.
Fixing some merges from release/2.0.0-preview2.
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.
Add F# and Roslyn satellites
Fix tests expecting unlocalized messages from dotnet/sdk
Generating a layout folder with the satellite assemblies only which we use to generate a language pack tarball/zip. Initially, I wanted a IncludeOnlyFilter, but couldn't quite get that to work on tar, just passing the filter in the command line didn't work because the shell does not do recursive globbing. So, I opted for the layout folder.
Update SPA templates version to 1.0.0-preview-000321
Fixdotnet/sdk#1364
Add rhel and Debian download link
Exclude satellite assemblies from archive.
Remove failed workaround for Microsoft.Composition warning
Update templates to add missing BrowserLink package
Update to SetupCrossgen 215 - Coherence 25794
Update templates to suppress the warning for Microsoft.Composition and AssetTargetFallback
Add explicit dependency for pakcage smoke test
Update templates to remove the package NETStandard.Library.NETFramework
Update F# compiler to latest
Update to SetupCrossgen 213 - Coherence 25769
Pinning to the dotnet-install to version '2.0.0-preview2-006470'
Updating branch/channel information.
...
* dotnet/release/2.0.0: (35 commits)
Fixing an issue in the RepoDirectoriesProvider where it assumed that the only directory under SDK was the SDK directories. This is no longer true now that we moved the NuGet fallback folder there.
Simple clean up to the store tests
Updating xlf files for the Configurer.
Removing NuGetConfig from the first run experience and replacing the sentinel with the FirstUseNoticeSentinel when needed.
Moving the expanding fallback folder to the dotnet folder hive. The folder will be expanded at sdk/NuGetFallbackFolder.
Fixing CRLF issue.
Updating xlf and fixing line ending problems with one file.
Add rhel and Debian download link
Fix race in telemetry msbuild arg tests
Avoid repeating the first-run message if lzma archive is missing
Use fluent helper for line-end normalization
Update CoreSetup to preview3-25419-01
Updating Roslyn to 2.3.0-beta3-61816-04
Update CoreSetup to preview3-25418-01
insert new tpv2 which fixes following issue https://github.com/Microsoft/vstest/issues/632https://github.com/Microsoft/vstest/issues/844https://github.com/Microsoft/vstest/issues/847https://github.com/Microsoft/vstest/issues/840https://github.com/Microsoft/vstest/issues/843
Windows installer refresh
Update SDK to 1.1.0-alpha-20170615-3
Updating NuGet to 4.3.0-preview3-4168
MSBuild 15.3.388
Make dotnet-sln-add.Tests pass on localized setup
...
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.
Adding tests for implicit restore for all the affected commands.
Fixing an issue where the command target was being passed to the restore command during implicit restore.
Adding restore params to all commands with implicit restore. Also, implicitly set the restore output to quiet.
Adding tests for the no-restore option.
* 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
...
New file name structure for the runtime and the CLI
per: https://github.com/dotnet/designs/issues/2
The renaming of assets, therefore the dotnet installation scripts must change to accommodate.
Trivial:
"Write-Host" should be "Write-Output"
Prior to this change the exception on line 138 could not
be thrown, as far as I can tell. The reason for this
is that`HeaderPrefix` contained a trailing space, and we
had verified that `line` (trimmed) started with
`HeaderPrefix`. Hence `line` must contain something more
than `HeaderPrefix` otherwise the tailing space would
have been removed, so the length of `line` could not be
less than or equal to the length of `HeaderPrefix`.
Added and changed tests to ensure that both exceptions
regarding `FormatVersion` are thrown.
Fixes#5978
* release/2.0.0:
Fixing tests to look for 1.1.2.
Updating the backwards compatible runtime to 1.1.2.
Updating the SDK to one that carries updated versions of the implicit 1.0 versions.
Update to SetupCrossgen 92 - Coherence 24937
Update to SetupCrossgen 86 - Coherence 24920
Fix date on package version
Update templates to 222
Update SetupCrossgen to build 82
Update SetupCrossgen to build 80
Update SetupCrossgen to build 77
Remove ProjectJsonMigration and its test from solution file
Change dependecy by package reference instead of project 2 project
Construct the sln and dotnet new with wrapper that is used in migrate
package
Add reference to Nuget ProjectModel etc since CrossGen need it and it
cannot automatically get the reference
When run “dotnet run -- foo”, foo should be the argument passed to the
subject app. After replacing the original parser, dotnet-run did not
utilize the “unparsedtoken” of the parsed result.
To append unparsedtoken to RunCommand’s argument is not straight
forward. RunCommand has an “immutable constructor”, which is a good
thing, so I made update RunCommand’s argument following the immutable
pattern -- create a new object with the original field but only change
the arguments. I also made these filed private set.