diff --git a/Documentation/manpages/sdk/dotnet-build-server.1 b/Documentation/manpages/sdk/dotnet-build-server.1 new file mode 100644 index 000000000..e9ee54c7b --- /dev/null +++ b/Documentation/manpages/sdk/dotnet-build-server.1 @@ -0,0 +1,43 @@ +.\" Automatically generated by Pandoc 2.2.1 +.\" +.TH "dotnet build\-server command \- .NET Core CLI" "1" "" "" ".NET Core" +.hy +.SH dotnet\-build +.PP +.SH NAME +.PP +\f[C]dotnet\ build\-server\f[] \- Interacts with servers started by a build. +.SH SYNOPSIS +.IP +.nf +\f[C] +dotnet\ build\-server\ shutdown\ [\-\-msbuild]\ [\-\-razor]\ [\-\-vbcscompiler] +dotnet\ build\-server\ shutdown\ [\-h|\-\-help] +dotnet\ build\-server\ [\-h|\-\-help] +\f[] +.fi +.SS Commands +.PP +\f[C]shutdown\f[] +.PP +Shuts down build servers that are started from dotnet. +By default, all servers are shut down. +.SH OPTIONS +.PP +\f[C]\-h|\-\-help\f[] +.PP +Prints out a short help for the command. +.PP +\f[C]\-\-msbuild\f[] +.PP +Shuts down the MSBuild build server. +.PP +\f[C]\-\-razor\f[] +.PP +Shuts down the Razor build server. +.PP +\f[C]\-\-vbcscompiler\f[] +.PP +Shuts down the VB/C# compiler build server. +.SH AUTHORS +mairaw. diff --git a/Documentation/manpages/sdk/dotnet-tool-install.1 b/Documentation/manpages/sdk/dotnet-tool-install.1 new file mode 100644 index 000000000..7e25874d5 --- /dev/null +++ b/Documentation/manpages/sdk/dotnet-tool-install.1 @@ -0,0 +1,116 @@ +.\"t +.\" Automatically generated by Pandoc 2.2.1 +.\" +.TH "dotnet tool install command \- .NET Core CLI" "1" "" "" ".NET Core" +.hy +.SH dotnet tool install +.PP +.SH NAME +.PP +\f[C]dotnet\ tool\ install\f[] \- Installs the specified .NET Core Global Tool on your machine. +.SH SYNOPSIS +.IP +.nf +\f[C] +dotnet\ tool\ install\ \ <\-g|\-\-global>\ [\-\-add\-source]\ [\-\-configfile]\ [\-\-framework]\ [\-v|\-\-verbosity]\ [\-\-version] +dotnet\ tool\ install\ \ <\-\-tool\-path>\ [\-\-add\-source]\ [\-\-configfile]\ [\-\-framework]\ [\-v|\-\-verbosity]\ [\-\-version] +dotnet\ tool\ install\ <\-h|\-\-help> +\f[] +.fi +.SH DESCRIPTION +.PP +The \f[C]dotnet\ tool\ install\f[] command provides a way for you to install .NET Core Global Tools on your machine. +To use the command, you either have to specify that you want a user\-wide installation using the \f[C]\-\-global\f[] option or you specify a path to install it using the \f[C]\-\-tool\-path\f[] option. +.PP +Global Tools are installed in the following directories by default when you specify the \f[C]\-g\f[] (or \f[C]\-\-global\f[]) option: +.PP +.TS +tab(@); +l l. +T{ +OS +T}@T{ +Path +T} +_ +T{ +Linux/macOS +T}@T{ +\f[C]$HOME/.dotnet/tools\f[] +T} +T{ +Windows +T}@T{ +\f[C]%USERPROFILE%\\.dotnet\\tools\f[] +T} +.TE +.SS Arguments +.PP +\f[C]PACKAGE_NAME\f[] +.PP +Name/ID of the NuGet package that contains the .NET Core Global Tool to install. +.SH OPTIONS +.PP +\f[C]\-\-add\-source\ \f[] +.PP +Adds an additional NuGet package source to use during installation. +.PP +\f[C]\-\-configfile\ \f[] +.PP +The NuGet configuration (\f[I]nuget.config\f[]) file to use. +.PP +\f[C]\-\-framework\ \f[] +.PP +Specifies the target framework to install the tool for. +By default, the .NET Core SDK tries to choose the most appropriate target framework. +.PP +\f[C]\-g|\-\-global\f[] +.PP +Specifies that the installation is user wide. +Can't be combined with the \f[C]\-\-tool\-path\f[] option. +If you don't specify this option, you must specify the \f[C]\-\-tool\-path\f[] option. +.PP +\f[C]\-h|\-\-help\f[] +.PP +Prints out a short help for the command. +.PP +\f[C]\-\-tool\-path\ \f[] +.PP +Specifies the location where to install the Global Tool. +PATH can be absolute or relative. +If PATH doesn't exist, the command tries to create it. +Can't be combined with the \f[C]\-\-global\f[] option. +If you don't specify this option, you must specify the \f[C]\-\-global\f[] option. +.PP +\f[C]\-v|\-\-verbosity\ \f[] +.PP +Sets the verbosity level of the command. +Allowed values are \f[C]q[uiet]\f[], \f[C]m[inimal]\f[], \f[C]n[ormal]\f[], \f[C]d[etailed]\f[], and \f[C]diag[nostic]\f[]. +.PP +\f[C]\-\-version\ \f[] +.PP +The version of the tool to install. +By default, the latest stable package version is installed. +Use this option to install preview or older versions of the tool. +.SH EXAMPLES +.PP +Installs the dotnetsay Global Tool in the default location: +.PP +\f[C]dotnet\ tool\ install\ \-g\ dotnetsay\f[] +.PP +Installs the dotnetsay Global Tool on a specific Windows folder: +.PP +\f[C]dotnet\ tool\ install\ dotnetsay\ \-\-tool\-path\ c:\\global\-tools\f[] +.PP +Installs the dotnetsay Global Tool on a specific Linux/macOS folder: +.PP +\f[C]dotnet\ tool\ install\ dotnetsay\ \-\-tool\-path\ ~/bin\f[] +.PP +Installs version 2.0.0 of the dotnetsay Global Tool: +.PP +\f[C]dotnet\ tool\ install\ \-g\ dotnetsay\ \-\-version\ 2.0.0\f[] +.SS See also +.PP +\&.NET Core Global Tools +.SH AUTHORS +mairaw. diff --git a/Documentation/manpages/sdk/dotnet-tool-list.1 b/Documentation/manpages/sdk/dotnet-tool-list.1 new file mode 100644 index 000000000..ba15dc92a --- /dev/null +++ b/Documentation/manpages/sdk/dotnet-tool-list.1 @@ -0,0 +1,59 @@ +.\" Automatically generated by Pandoc 2.2.1 +.\" +.TH "dotnet tool list command \- .NET Core CLI" "1" "" "" ".NET Core" +.hy +.SH dotnet tool list +.PP +.SH NAME +.PP +\f[C]dotnet\ tool\ list\f[] \- Lists all .NET Core Global Tools currently installed in the default directory on your machine or in the specified path. +.SH SYNOPSIS +.IP +.nf +\f[C] +dotnet\ tool\ list\ <\-g|\-\-global> +dotnet\ tool\ list\ <\-\-tool\-path> +dotnet\ tool\ list\ <\-h|\-\-help> +\f[] +.fi +.SH DESCRIPTION +.PP +The \f[C]dotnet\ tool\ list\f[] command provides a way for you to list all .NET Core Global Tools installed user\-wide on your machine (current user profile) or in the specified path. +The command lists the package name, version installed, and the Global Tool command. +To use the list command, you either have to specify that you want to see all user\-wide tools using the \f[C]\-\-global\f[] option or specify a custom path using the \f[C]\-\-tool\-path\f[] option. +.SH OPTIONS +.PP +\f[C]\-g|\-\-global\f[] +.PP +Lists user\-wide Global Tools. +Can't be combined with the \f[C]\-\-tool\-path\f[] option. +If you don't specify this option, you must specify the \f[C]\-\-tool\-path\f[] option. +.PP +\f[C]\-h|\-\-help\f[] +.PP +Prints out a short help for the command. +.PP +\f[C]\-\-tool\-path\ \f[] +.PP +Specifies a custom location where to find Global Tools. +PATH can be absolute or relative. +Can't be combined with the \f[C]\-\-global\f[] option. +If you don't specify this option, you must specify the \f[C]\-\-global\f[] option. +.SH EXAMPLES +.PP +Lists all Global Tools installed user\-wide on your machine (current user profile): +.PP +\f[C]dotnet\ tool\ list\ \-g\f[] +.PP +Lists the Global Tools from a specific Windows folder: +.PP +\f[C]dotnet\ tool\ list\ \-\-tool\-path\ c:\\global\-tools\f[] +.PP +Lists the Global Tools from a specific Linux/macOS folder: +.PP +\f[C]dotnet\ tool\ list\ \-\-tool\-path\ ~/bin\f[] +.SS See also +.PP +\&.NET Core Global Tools +.SH AUTHORS +mairaw. diff --git a/Documentation/manpages/sdk/dotnet-tool-uninstall.1 b/Documentation/manpages/sdk/dotnet-tool-uninstall.1 new file mode 100644 index 000000000..f9ded19cb --- /dev/null +++ b/Documentation/manpages/sdk/dotnet-tool-uninstall.1 @@ -0,0 +1,64 @@ +.\" Automatically generated by Pandoc 2.2.1 +.\" +.TH "dotnet tool uninstall command \- .NET Core CLI" "1" "" "" ".NET Core" +.hy +.SH dotnet tool uninstall +.PP +.SH NAME +.PP +\f[C]dotnet\ tool\ uninstall\f[] \- Uninstalls the specified .NET Core Global Tool from your machine. +.SH SYNOPSIS +.IP +.nf +\f[C] +dotnet\ tool\ uninstall\ \ <\-g|\-\-global> +dotnet\ tool\ uninstall\ \ <\-\-tool\-path> +dotnet\ tool\ uninstall\ <\-h|\-\-help> +\f[] +.fi +.SH DESCRIPTION +.PP +The \f[C]dotnet\ tool\ uninstall\f[] command provides a way for you to uninstall .NET Core Global Tools from your machine. +To use the command, you either have to specify that you want to remove a user\-wide tool using the \f[C]\-\-global\f[] option or specify a path to where the tool is installed using the \f[C]\-\-tool\-path\f[] option. +.SS Arguments +.PP +\f[C]PACKAGE_NAME\f[] +.PP +Name/ID of the NuGet package that contains the .NET Core Global Tool to uninstall. +You can find the package name using the dotnet tool list command. +.SH OPTIONS +.PP +\f[C]\-g|\-\-global\f[] +.PP +Specifies that the tool to be removed is from a user\-wide installation. +Can't be combined with the \f[C]\-\-tool\-path\f[] option. +If you don't specify this option, you must specify the \f[C]\-\-tool\-path\f[] option. +.PP +\f[C]\-h|\-\-help\f[] +.PP +Prints out a short help for the command. +.PP +\f[C]\-\-tool\-path\ \f[] +.PP +Specifies the location where to uninstall the Global Tool. +PATH can be absolute or relative. +Can't be combined with the \f[C]\-\-global\f[] option. +If you don't specify this option, you must specify the \f[C]\-\-global\f[] option. +.SH EXAMPLES +.PP +Uninstalls the dotnetsay Global Tool: +.PP +\f[C]dotnet\ tool\ uninstall\ \-g\ dotnetsay\f[] +.PP +Uninstalls the dotnetsay Global Tool from a specific Windows folder: +.PP +\f[C]dotnet\ tool\ uninstall\ dotnetsay\ \-\-tool\-path\ c:\\global\-tools\f[] +.PP +Uninstalls the dotnetsay Global Tool from a specific Linux/macOS folder: +.PP +\f[C]dotnet\ tool\ uninstall\ dotnetsay\ \-\-tool\-path\ ~/bin\f[] +.SS See also +.PP +\&.NET Core Global Tools +.SH AUTHORS +mairaw. diff --git a/Documentation/manpages/sdk/dotnet-tool-update.1 b/Documentation/manpages/sdk/dotnet-tool-update.1 new file mode 100644 index 000000000..a43ab9cc2 --- /dev/null +++ b/Documentation/manpages/sdk/dotnet-tool-update.1 @@ -0,0 +1,82 @@ +.\" Automatically generated by Pandoc 2.2.1 +.\" +.TH "dotnet tool update command \- .NET Core CLI" "1" "" "" ".NET Core" +.hy +.SH dotnet tool update +.PP +.SH NAME +.PP +\f[C]dotnet\ tool\ update\f[] \- Updates the specified .NET Core Global Tool on your machine. +.SH SYNOPSIS +.IP +.nf +\f[C] +dotnet\ tool\ update\ \ <\-g|\-\-global>\ [\-\-configfile]\ [\-\-framework]\ [\-v|\-\-verbosity] +dotnet\ tool\ update\ \ <\-\-tool\-path>\ [\-\-configfile]\ [\-\-framework]\ [\-v|\-\-verbosity] +dotnet\ tool\ update\ <\-h|\-\-help> +\f[] +.fi +.SH DESCRIPTION +.PP +The \f[C]dotnet\ tool\ update\f[] command provides a way for you to update .NET Core Global Tools on your machine to the latest stable version of the package. +The command uninstalls and reinstalls a tool, effectively updating it. +To use the command, you either have to specify that you want to update a tool from a user\-wide installation using the \f[C]\-\-global\f[] option or specify a path to where the tool is installed using the \f[C]\-\-tool\-path\f[] option. +.SS Arguments +.PP +\f[C]PACKAGE_NAME\f[] +.PP +Name/ID of the NuGet package that contains the .NET Core Global Tool to update. +You can find the package name using the dotnet tool list command. +.SH OPTIONS +.PP +\f[C]\-\-add\-source\ \f[] +.PP +Adds an additional NuGet package source to use during installation. +.PP +\f[C]\-\-configfile\ \f[] +.PP +The NuGet configuration (\f[I]nuget.config\f[]) file to use. +.PP +\f[C]\-\-framework\ \f[] +.PP +Specifies the target framework to update the tool for. +.PP +\f[C]\-g|\-\-global\f[] +.PP +Specifies that the update is for a user\-wide tool. +Can't be combined with the \f[C]\-\-tool\-path\f[] option. +If you don't specify this option, you must specify the \f[C]\-\-tool\-path\f[] option. +.PP +\f[C]\-h|\-\-help\f[] +.PP +Prints out a short help for the command. +.PP +\f[C]\-\-tool\-path\ \f[] +.PP +Specifies the location where the Global Tool is installed. +PATH can be absolute or relative. +Can't be combined with the \f[C]\-\-global\f[] option. +If you don't specify this option, you must specify the \f[C]\-\-global\f[] option. +.PP +\f[C]\-v|\-\-verbosity\ \f[] +.PP +Sets the verbosity level of the command. +Allowed values are \f[C]q[uiet]\f[], \f[C]m[inimal]\f[], \f[C]n[ormal]\f[], \f[C]d[etailed]\f[], and \f[C]diag[nostic]\f[]. +.SH EXAMPLES +.PP +Updates the dotnetsay Global Tool: +.PP +\f[C]dotnet\ tool\ update\ \-g\ dotnetsay\f[] +.PP +Updates the dotnetsay Global Tool located on a specific Windows folder: +.PP +\f[C]dotnet\ tool\ update\ dotnetsay\ \-\-tool\-path\ c:\\global\-tools\f[] +.PP +Updates the dotnetsay Global Tool located on a specific Linux/macOS folder: +.PP +\f[C]dotnet\ tool\ update\ dotnetsay\ \-\-tool\-path\ ~/bin\f[] +.SS See also +.PP +\&.NET Core Global Tools +.SH AUTHORS +mairaw. diff --git a/TestAssets/TestProjects/ProjectPrintsNoWarn/ProjectPrintsNoWarn.csproj b/TestAssets/TestProjects/ProjectPrintsNoWarn/ProjectPrintsNoWarn.csproj deleted file mode 100644 index 4e83f2fad..000000000 --- a/TestAssets/TestProjects/ProjectPrintsNoWarn/ProjectPrintsNoWarn.csproj +++ /dev/null @@ -1,12 +0,0 @@ - - - - library - netcoreapp2.0 - - - - - - - diff --git a/TestAssets/TestProjects/TestRazorApp/TestRazorApp.csproj b/TestAssets/TestProjects/TestRazorApp/TestRazorApp.csproj index 59cfc871f..611bb08eb 100644 --- a/TestAssets/TestProjects/TestRazorApp/TestRazorApp.csproj +++ b/TestAssets/TestProjects/TestRazorApp/TestRazorApp.csproj @@ -6,6 +6,6 @@ - + diff --git a/build/BranchInfo.props b/build/BranchInfo.props index f62c8fd00..e666ebd65 100644 --- a/build/BranchInfo.props +++ b/build/BranchInfo.props @@ -1,6 +1,6 @@ - master - master + release/2.2.1xx + release/2.2.1xx diff --git a/build/BuildDefaults.props b/build/BuildDefaults.props index 7fef50f28..18a0f0514 100644 --- a/build/BuildDefaults.props +++ b/build/BuildDefaults.props @@ -10,7 +10,7 @@ ($(Rid.StartsWith('rhel.6')) OR $(Rid.StartsWith('linux-musl')) OR $(Rid.StartsWith('fedora.27')) - OR $(Rid.StartsWith('opensuse.43.2')) + OR $(Rid.StartsWith('opensuse.42.3')) OR $(Rid.StartsWith('ubuntu.18.04')))">true false @@ -20,16 +20,18 @@ AND '$(Rid)' != 'rhel.6-x64' AND '$(Rid)' != 'linux-musl-x64' AND '$(Rid)' != 'fedora.27-x64' - AND '$(Rid)' != 'opensuse.43.2-x64' + AND '$(Rid)' != 'opensuse.42.3-x64' AND '$(Rid)' != 'ubuntu.18.04-x64'">true true true - + - NU1701 + + + NU1701;NU5104 true diff --git a/build/BundledDotnetTools.proj b/build/BundledDotnetTools.proj index 3c07a51f0..57837ea01 100644 --- a/build/BundledDotnetTools.proj +++ b/build/BundledDotnetTools.proj @@ -13,12 +13,11 @@ Condition="!Exists('$(DotnetToolsNuPkgPath)/$(TemplateFillInPackageName.ToLower())')"> - --runtime any + --runtime any /p:RestoreProjectStyle=DotnetToolReference $(DotnetToolsRestoreAdditionalParameters) /p:TargetFramework=$(CliTargetFramework) $(DotnetToolsRestoreAdditionalParameters) /p:TemplateFillInPackageName=$(TemplateFillInPackageName) $(DotnetToolsRestoreAdditionalParameters) /p:TemplateFillInPackageVersion=$(TemplateFillInPackageVersion) $(DotnetToolsRestoreAdditionalParameters) /p:RestorePackagesPath=$(DotnetToolsLayoutDirectory) - $(DotnetToolsRestoreAdditionalParameters) /p:RestoreProjectStyle=$(DotnetToolsRestoreProjectStyle) - - - - - + + + + + diff --git a/build/BundledRuntimes.props b/build/BundledRuntimes.props index 2de7068b0..720919485 100644 --- a/build/BundledRuntimes.props +++ b/build/BundledRuntimes.props @@ -7,20 +7,20 @@ -internal - dotnet-runtime-deps-$(SharedHostVersion)-$(CoreSetupRid)$(InstallerEndSuffix)$(InstallerExtension) + dotnet-runtime-deps-$(SharedHostVersion)-$(CoreSetupRid)$(InstallerExtension) $(PackagesDirectory)/$(DownloadedRuntimeDepsInstallerFileName) $(CoreSetupRid) x64 - dotnet-host$(InstallerStartSuffix)-$(SharedHostVersion)-$(SharedFrameworkInstallerFileRid)$(InstallerEndSuffix)$(InstallerExtension) + dotnet-host$(InstallerStartSuffix)-$(SharedHostVersion)-$(SharedFrameworkInstallerFileRid)$(InstallerExtension) $(PackagesDirectory)/$(DownloadedSharedHostInstallerFileName) - dotnet-hostfxr$(InstallerStartSuffix)-$(HostFxrVersion)-$(SharedFrameworkInstallerFileRid)$(InstallerEndSuffix)$(InstallerExtension) + dotnet-hostfxr$(InstallerStartSuffix)-$(HostFxrVersion)-$(SharedFrameworkInstallerFileRid)$(InstallerExtension) $(PackagesDirectory)/$(DownloadedHostFxrInstallerFileName) - dotnet-runtime$(InstallerStartSuffix)-$(MicrosoftNETCoreAppPackageVersion)-$(SharedFrameworkInstallerFileRid)$(InstallerEndSuffix)$(InstallerExtension) + dotnet-runtime$(InstallerStartSuffix)-$(MicrosoftNETCoreAppPackageVersion)-$(SharedFrameworkInstallerFileRid)$(InstallerExtension) $(PackagesDirectory)/$(DownloadedSharedFrameworkInstallerFileName) @@ -34,7 +34,7 @@ $(AspNetCoreSharedFxInstallerRid) x64 - aspnetcore-runtime-$(AspNetCoreVersion)-$(AspNetCoreSharedFxInstallerRid)$(InstallerEndSuffix)$(InstallerExtension) + aspnetcore-runtime-$(AspNetCoreVersion)-$(AspNetCoreSharedFxInstallerRid)$(InstallerExtension) aspnetcore-runtime-internal-$(AspNetCoreVersion)-$(AspNetCoreSharedFxInstallerRid).wixlib $(PackagesDirectory)/$(DownloadedAspNetCoreSharedFxInstallerFileName) diff --git a/build/BundledTemplates.props b/build/BundledTemplates.props index 3dc796a21..30ee5dbac 100644 --- a/build/BundledTemplates.props +++ b/build/BundledTemplates.props @@ -7,5 +7,7 @@ + + diff --git a/build/DependencyVersions.props b/build/DependencyVersions.props index e128c3fb1..43e3dad00 100644 --- a/build/DependencyVersions.props +++ b/build/DependencyVersions.props @@ -4,40 +4,47 @@ 3.0.100-alpha1-009033 3.0.0-alpha1-10062 $(MicrosoftAspNetCoreAllPackageVersion) - 3.0.0-preview1-26710-03 + $(MicrosoftAspNetCoreAllPackageVersion) + $(MicrosoftAspNetCoreAllPackageVersion) + $(MicrosoftAspNetCoreAllPackageVersion) + $(MicrosoftAspNetCoreAllPackageVersion) + $(MicrosoftAspNetCoreAllPackageVersion)/DotnetSqlCachePackageVersion> + $(MicrosoftAspNetCoreAllPackageVersion) + $(MicrosoftAspNetCoreAllPackageVersion) + 2.2.0-preview1-26529-01 $(MicrosoftNETCoreAppPackageVersion) - 15.8.0-preview-000060 + 15.8.166 $(MicrosoftBuildPackageVersion) $(MicrosoftBuildPackageVersion) $(MicrosoftBuildPackageVersion) $(MicrosoftBuildPackageVersion) - 10.1.4-rtm-180515-0 - 2.8.3-beta6-63029-08 + 10.2.2-rtm-180720-0 + 2.9.0-beta8-63119-10 $(MicrosoftCodeAnalysisCSharpPackageVersion) $(MicrosoftCodeAnalysisCSharpPackageVersion) $(MicrosoftCodeAnalysisCSharpPackageVersion) $(MicrosoftCodeAnalysisCSharpPackageVersion) - 1.0.0-preview1-62924-06 + 2.2.100-preview1-63118-02 $(MicrosoftNETSdkPackageVersion) - $(MicrosoftAspNetCoreAppPackageVersion) - 2.1.300-rtm-20180515-1688249 + 2.1.1 + 2.1.400-preview1-20180705-1834985 $(MicrosoftNETSdkWebPackageVersion) $(MicrosoftNETSdkWebPackageVersion) - 1.0.2-beta3-20180515-1688254 + 1.0.2-beta3 $(MicrosoftDotNetCommonItemTemplatesPackageVersion) - 1.0.2-beta3-20180515-1688254 - 1.0.2-beta3-20180515-1688254 + 1.0.2-beta3-20180716-1864993 + 1.0.2-beta3 $(MicrosoftTemplateEngineCliPackageVersion) $(MicrosoftTemplateEngineCliPackageVersion) $(MicrosoftTemplateEngineCliPackageVersion) $(MicrosoftTemplateEngineCliPackageVersion) 3.0.0-preview1-26710-03 3.0.0-preview1-26710-03 - 0.1.1-rtm-62915-03 - 1.3.1-rtm-62915-03 + 0.1.1 + 1.3.1 $(MicrosoftDotNetProjectJsonMigrationPackageVersion) - 0.2.0-beta-62628-01 - 4.8.0-preview3.5244 + 0.2.0-beta-63027-01 + 4.8.0-rtm.5348 $(NuGetBuildTasksPackageVersion) $(NuGetBuildTasksPackageVersion) $(NuGetBuildTasksPackageVersion) @@ -47,12 +54,15 @@ $(NuGetBuildTasksPackageVersion) $(NuGetBuildTasksPackageVersion) $(NuGetBuildTasksPackageVersion) - 15.8.0-preview-20180510-03 + 15.8.0 $(MicrosoftNETTestSdkPackageVersion) $(MicrosoftNETTestSdkPackageVersion) 3.0.100-alpha1-20180711-1 0.2.0-beta-000042 0.2.0 + 1.3.2 + 2.3.1 + 1.5.1 diff --git a/build/MSBuildExtensions.targets b/build/MSBuildExtensions.targets index 45f875c95..691b04388 100644 --- a/build/MSBuildExtensions.targets +++ b/build/MSBuildExtensions.targets @@ -32,6 +32,13 @@ <_AspNetCoreAllPackageVersion>$(MicrosoftAspNetCoreAllPackageVersion) <_AspNetCoreAppPackageVersion>$(MicrosoftAspNetCoreAppPackageVersion) + + <_DefaultPatchVersionForAspNetCoreAll2_1>2.1.1 + <_DefaultPatchVersionForAspNetCoreApp2_1>$(_DefaultPatchVersionForAspNetCoreAll2_1) + + <_DefaultPatchVersionForAspNetCoreAll2_1 Condition="$(_AspNetCoreAllPackageVersion.StartsWith('$(_DefaultPatchVersionForAspNetCoreAll2_1)-'))">$(_AspNetCoreAllPackageVersion) + <_DefaultPatchVersionForAspNetCoreApp2_1 Condition="$(_AspNetCoreAppPackageVersion.StartsWith('$(_DefaultPatchVersionForAspNetCoreApp2_1)-'))">$(_AspNetCoreAppPackageVersion) + <_NETCoreAppTargetFrameworkVersion>$(_NETCoreAppPackageVersion.Split('.')[0]).$(_NETCoreAppPackageVersion.Split('.')[1]) <_NETStandardTargetFrameworkVersion>$(_NETStandardLibraryPackageVersion.Split('.')[0]).$(_NETStandardLibraryPackageVersion.Split('.')[1]) @@ -41,6 +48,16 @@ <_NETCoreSdkIsPreview Condition=" '$(DropSuffix)' != 'true' ">true + + + + + @@ -80,6 +97,7 @@ Copyright (c) .NET Foundation. All rights reserved. $(_NETCoreAppTargetFrameworkVersion) $(_NETCoreAppTargetFrameworkVersion) $(_NETCoreAppPackageVersion) + $(_UseBundledNETCoreAppPackageVersionAsDefaultNetCorePatchVersion) $(_NETStandardTargetFrameworkVersion) $(_NETStandardLibraryPackageVersion) $(_NETCorePlatformsPackageVersion) @@ -87,10 +105,14 @@ Copyright (c) .NET Foundation. All rights reserved. $(SdkVersion) <_NETCoreSdkIsPreview>$(_NETCoreSdkIsPreview) + + $(_DefaultPatchVersionForAspNetCoreAll2_1) + $(_DefaultPatchVersionForAspNetCoreApp2_1) + - 1.0.11 - 1.1.8 - 2.0.7 + 1.0.12 + 1.1.9 + 2.0.9 ]]> diff --git a/build/Microsoft.DotNet.Cli.tasks b/build/Microsoft.DotNet.Cli.tasks index 6ada95a1c..58227dce8 100644 --- a/build/Microsoft.DotNet.Cli.tasks +++ b/build/Microsoft.DotNet.Cli.tasks @@ -23,6 +23,7 @@ + diff --git a/build/NugetConfigFile.targets b/build/NugetConfigFile.targets index d40fe8bc4..ce1624044 100644 --- a/build/NugetConfigFile.targets +++ b/build/NugetConfigFile.targets @@ -24,18 +24,25 @@ + + - + + + ]]> + + + ]]> diff --git a/build/Publish.targets b/build/Publish.targets index c26bb80e2..f3076eee7 100644 --- a/build/Publish.targets +++ b/build/Publish.targets @@ -50,7 +50,9 @@ Condition=" '$(OS)' == 'Windows_NT' And '$(Architecture)' == 'x64' "/> - --> + --> + diff --git a/build/compile/LzmaArchive.targets b/build/compile/LzmaArchive.targets index a1fa07e91..2d55fd502 100644 --- a/build/compile/LzmaArchive.targets +++ b/build/compile/LzmaArchive.targets @@ -3,6 +3,7 @@ $(SdkOutputDirectory)/nuGetPackagesArchive.lzma + $(PackagesDirectory)/nuGetPackagesArchive.lzma nuGetPackagesArchive-$(AspNetCoreVersion).lzma $(IntermediateDirectory)/$(NugetPackagesArchiveName) $(AspNetCoreSharedFxRootUrl)$(AspNetCoreVersion)/$(NugetPackagesArchiveName) @@ -17,5 +18,6 @@ ContinueOnError="WarnAndContinue" /> + diff --git a/build/package/Installer.DEB.proj b/build/package/Installer.DEB.proj index 5de34c5d4..db84e5836 100644 --- a/build/package/Installer.DEB.proj +++ b/build/package/Installer.DEB.proj @@ -5,11 +5,11 @@ + @@ -100,11 +100,14 @@ SkipUnchangedFiles="False" UseHardlinksIfPossible="False" /> - + + + + diff --git a/build/package/Installer.DEB.targets b/build/package/Installer.DEB.targets index 349089d86..ebb3caabe 100644 --- a/build/package/Installer.DEB.targets +++ b/build/package/Installer.DEB.targets @@ -32,8 +32,9 @@ $(SharedFxDebianPackageFileName.ToLower()) dotnet-runtime-$(SharedFxDebianPackageVersion) $(SharedFxDebianPackageName.ToLower()) - $(HostFxrMajorMinorVersion) - dotnet-hostfxr-$(HostFxrDebianPackageVersion) + dotnet-hostfxr-$(HostFxrVersion) + $(HostFxrDebianPackageFileName.ToLower()) + dotnet-hostfxr-$(HostFxrMajorMinorVersion) $(HostFxrDebianPackageName.ToLower()) dotnet-host aspnetcore-runtime-$(AspNetCoreVersion) diff --git a/build/package/Installer.MSI.targets b/build/package/Installer.MSI.targets index 09e13e7c9..a2499b06d 100644 --- a/build/package/Installer.MSI.targets +++ b/build/package/Installer.MSI.targets @@ -14,6 +14,7 @@ $(InstallerOutputDirectory)/$(ArtifactNameWithVersionCombinedHostHostFxrFrameworkSdk)-engine.exe $(RepoRoot)/packaging/windows/clisdk/generatemsi.ps1 + $(RepoRoot)/packaging/windows/clisdk/stablefileidforapphosttransform.xslt $(RepoRoot)/packaging/windows/clisdk/generatebundle.ps1 $(RepoRoot)/packaging/windows/clisdk/generatenupkg.ps1 @@ -113,7 +114,9 @@ '$(SimpleVersion)' '$(NugetVersion)' '$(SdkInstallerUpgradeCode)' - '$(Architecture)'" /> + '$(Architecture)' + '$(SdkStableFileIdForApphostTransform)' + " /> True + @@ -242,7 +243,6 @@ - diff --git a/build_projects/dotnet-cli-build/GetUseBundledVersionAsDefaultVersion.cs b/build_projects/dotnet-cli-build/GetUseBundledVersionAsDefaultVersion.cs new file mode 100644 index 000000000..91d10694a --- /dev/null +++ b/build_projects/dotnet-cli-build/GetUseBundledVersionAsDefaultVersion.cs @@ -0,0 +1,30 @@ +// Copyright (c) .NET Foundation and contributors. All rights reserved. +// Licensed under the MIT license. See LICENSE file in the project root for full license information. + +using System; +using System.IO; +using Microsoft.Build.Utilities; +using Microsoft.Build.Framework; +using Microsoft.DotNet.Cli.Build.Framework; +using NuGet.Versioning; + +namespace Microsoft.DotNet.Cli.Build +{ + public class GetUseBundledNETCoreAppPackageVersionAsDefaultNetCorePatchVersion : Task + { + [Required] + public string BundledNETCoreAppPackageVersion { get; set; } + + [Output] + public string UseBundledNETCoreAppPackageVersionAsDefaultNetCorePatchVersion { get; set; } + + public override bool Execute() + { + var parsedVersion = NuGetVersion.Parse(BundledNETCoreAppPackageVersion); + UseBundledNETCoreAppPackageVersionAsDefaultNetCorePatchVersion = + (parsedVersion.Patch == 0) && parsedVersion.IsPrerelease ? "true" : "false"; + + return true; + } + } +} diff --git a/packaging/windows/clisdk/StableFileIdForApphostTransform.xslt b/packaging/windows/clisdk/StableFileIdForApphostTransform.xslt new file mode 100644 index 000000000..dcded1aca --- /dev/null +++ b/packaging/windows/clisdk/StableFileIdForApphostTransform.xslt @@ -0,0 +1,26 @@ + + + + + + + + + + + + + + + + + apphosttemplateapphostexe + + + + diff --git a/packaging/windows/clisdk/generatemsi.ps1 b/packaging/windows/clisdk/generatemsi.ps1 index fc9da871d..69c17d078 100644 --- a/packaging/windows/clisdk/generatemsi.ps1 +++ b/packaging/windows/clisdk/generatemsi.ps1 @@ -10,7 +10,8 @@ param( [Parameter(Mandatory=$true)][string]$DotnetCLIDisplayVersion, [Parameter(Mandatory=$true)][string]$DotnetCLINugetVersion, [Parameter(Mandatory=$true)][string]$UpgradeCode, - [Parameter(Mandatory=$true)][string]$Architecture + [Parameter(Mandatory=$true)][string]$Architecture, + [Parameter(Mandatory=$true)][string]$StableFileIdForApphostTransform ) . "$PSScriptRoot\..\..\..\scripts\common\_common.ps1" @@ -26,7 +27,19 @@ function RunHeat Write-Output Running heat.. - .\heat.exe dir `"$inputDir`" -template fragment -sreg -gg -var var.DotnetSrc -cg InstallFiles -srd -dr DOTNETHOME -out $InstallFileswsx | Out-Host + # -t $StableFileIdForApphostTransform to avoid sign check baseline apphost.exe name changes every build. Sign check uses File Id in MSI as whitelist name. + # Template apphost.exe get a new "File Id" in msi different every time (since File Id is generated according to file + # path, and file path has version number) + # use XSLT tranform to match the file path contains "AppHostTemplate\apphost.exe" and give it the same ID all the time. + + .\heat.exe dir `"$inputDir`" -template fragment ` + -sreg -gg ` + -var var.DotnetSrc ` + -cg InstallFiles ` + -srd ` + -dr DOTNETHOME ` + -t $StableFileIdForApphostTransform ` + -out $InstallFileswsx | Out-Host if($LastExitCode -ne 0) { diff --git a/run-build.ps1 b/run-build.ps1 index 97f8d1c65..df034ca12 100644 --- a/run-build.ps1 +++ b/run-build.ps1 @@ -90,8 +90,8 @@ if($Architecture.StartsWith("arm", [StringComparison]::OrdinalIgnoreCase)) $InstallArchitecture = "x64" } -Write-Output "$dotnetInstallPath -version ""2.2.0-preview1-007799"" -InstallDir $env:DOTNET_INSTALL_DIR -Architecture ""$InstallArchitecture""" -Invoke-Expression "$dotnetInstallPath -version ""2.2.0-preview1-007799"" -InstallDir $env:DOTNET_INSTALL_DIR -Architecture ""$InstallArchitecture""" +Write-Output "$dotnetInstallPath -version ""2.1.300"" -InstallDir $env:DOTNET_INSTALL_DIR -Architecture ""$InstallArchitecture""" +Invoke-Expression "$dotnetInstallPath -version ""2.1.300"" -InstallDir $env:DOTNET_INSTALL_DIR -Architecture ""$InstallArchitecture""" if ($LastExitCode -ne 0) { diff --git a/scripts/docker/alpine.3.6/Dockerfile b/scripts/docker/alpine.3.6/Dockerfile index 3c746e976..61bd7a5c8 100644 --- a/scripts/docker/alpine.3.6/Dockerfile +++ b/scripts/docker/alpine.3.6/Dockerfile @@ -11,6 +11,15 @@ RUN apk update && apk upgrade && apk add --no-cache curl ncurses # This Dockerfile doesn't use the USER_ID, but the parameter needs to be declared to prevent docker # from issuing a warning ARG USER_ID=0 +RUN adduser code_executor -u ${USER_ID} -G root -D +RUN echo 'code_executor ALL=(ALL) NOPASSWD:ALL' >> /etc/sudoers + +# With the User Change, we need to change permssions on these directories +RUN chmod -R a+rwx /usr/local +RUN chmod -R a+rwx /home + +# Set user to the one we just created +USER ${USER_ID} # Set working directory WORKDIR /opt/code diff --git a/scripts/docker/opensuse.43.2/Dockerfile b/scripts/docker/opensuse.42.3/Dockerfile similarity index 100% rename from scripts/docker/opensuse.43.2/Dockerfile rename to scripts/docker/opensuse.42.3/Dockerfile diff --git a/test/EndToEnd/GivenAspNetAppsResolveImplicitVersions.cs b/test/EndToEnd/GivenAspNetAppsResolveImplicitVersions.cs index 9e3850e74..a5d99468d 100644 --- a/test/EndToEnd/GivenAspNetAppsResolveImplicitVersions.cs +++ b/test/EndToEnd/GivenAspNetAppsResolveImplicitVersions.cs @@ -48,9 +48,6 @@ namespace EndToEnd var restoredVersion = GetAspNetCoreAppVersion(assetsFile, portable: true); restoredVersion.Should().NotBeNull(); - var bundledVersionPath = Path.Combine(projectDirectory, ".BundledAspNetCoreVersion"); - var bundledVersion = File.ReadAllText(bundledVersionPath).Trim(); - restoredVersion.ToNormalizedString().Should().BeEquivalentTo(bundledVersion, "The bundled aspnetcore versions set in Microsoft.NETCoreSdk.BundledVersions.props should be idenitical to the versions set in DependencyVersions.props." + "Please update MSBuildExtensions.targets in this repo so these versions match."); diff --git a/test/EndToEnd/GivenDotNetUsesMSBuild.cs b/test/EndToEnd/GivenDotNetUsesMSBuild.cs index 2b05328f6..f0b6e5678 100644 --- a/test/EndToEnd/GivenDotNetUsesMSBuild.cs +++ b/test/EndToEnd/GivenDotNetUsesMSBuild.cs @@ -85,7 +85,7 @@ namespace Microsoft.DotNet.Tests.EndToEnd .HaveStdOutContaining("Hello Portable World!");; } - [Fact] + [Fact(Skip="https://github.com/dotnet/cli/issues/9688")] public void ItCanRunToolsThatPrefersTheCliRuntimeEvenWhenTheToolItselfDeclaresADifferentRuntime() { var testInstance = TestAssets.Get("MSBuildTestApp") @@ -102,7 +102,7 @@ namespace Microsoft.DotNet.Tests.EndToEnd .And.HaveStdOutContaining("Hello I prefer the cli runtime World!");; } - [Fact] + [Fact(Skip="https://github.com/dotnet/cli/issues/9688")] public void ItCanRunAToolThatInvokesADependencyToolInACSProj() { var repoDirectoriesProvider = new RepoDirectoriesProvider(); diff --git a/test/EndToEnd/GivenFrameworkDependentApps.cs b/test/EndToEnd/GivenFrameworkDependentApps.cs new file mode 100644 index 000000000..605e22bd2 --- /dev/null +++ b/test/EndToEnd/GivenFrameworkDependentApps.cs @@ -0,0 +1,90 @@ +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using System.Xml.Linq; +using FluentAssertions; +using Microsoft.DotNet.PlatformAbstractions; +using Microsoft.DotNet.TestFramework; +using Microsoft.DotNet.Tools.Test.Utilities; +using NuGet.ProjectModel; +using NuGet.Versioning; +using Xunit; + +namespace EndToEnd +{ + public class GivenFrameworkDependentApps : TestBase + { + [Theory] + [ClassData(typeof(SupportedNetCoreAppVersions))] + public void ItDoesNotRollForwardToTheLatestVersion(string minorVersion) + { + var _testInstance = TestAssets.Get("TestAppSimple") + .CreateInstance(identifier: minorVersion) + // scope the feed to only dotnet-core feed to avoid flaky when different feed has a newer / lower version + .WithNuGetConfig(new RepoDirectoriesProvider().TestPackages) + .WithSourceFiles(); + + string projectDirectory = _testInstance.Root.FullName; + + string projectPath = Path.Combine(projectDirectory, "TestAppSimple.csproj"); + + var project = XDocument.Load(projectPath); + var ns = project.Root.Name.Namespace; + + // Update TargetFramework to the right version of .NET Core + project.Root.Element(ns + "PropertyGroup") + .Element(ns + "TargetFramework") + .Value = "netcoreapp" + minorVersion; + + project.Save(projectPath); + + // Get the resolved version of .NET Core + new RestoreCommand() + .WithWorkingDirectory(projectDirectory) + .Execute() + .Should().Pass(); + + string assetsFilePath = Path.Combine(projectDirectory, "obj", "project.assets.json"); + var assetsFile = new LockFileFormat().Read(assetsFilePath); + + var versionInAssertsJson = GetNetCoreAppVersion(assetsFile); + versionInAssertsJson.Should().NotBeNull(); + + if (versionInAssertsJson.IsPrerelease && versionInAssertsJson.Patch == 0) + { + // if the bundled version is, for example, a prerelease of + // .NET Core 2.1.1, that we don't roll forward to that prerelease + // version for framework-dependent deployments. + return; + } + + versionInAssertsJson.ToNormalizedString().Should().BeEquivalentTo(GetExpectedVersion(minorVersion)); + } + + private NuGetVersion GetNetCoreAppVersion(LockFile lockFile) + { + return lockFile?.Targets?.SingleOrDefault(t => t.RuntimeIdentifier == null) + ?.Libraries?.SingleOrDefault(l => + string.Compare(l.Name, "Microsoft.NETCore.App", StringComparison.CurrentCultureIgnoreCase) == 0) + ?.Version; + } + + public string GetExpectedVersion(string minorVersion) + { + if (minorVersion.StartsWith("1.0")) + { + return "1.0.5"; // special case for 1.0 + } + else if (minorVersion.StartsWith("1.1")) + { + return "1.1.2"; // special case for 1.1 + } + else + { + var parsed = NuGetVersion.Parse(minorVersion); + return new NuGetVersion(parsed.Major, parsed.Minor, 0).ToNormalizedString(); + } + } + } +} diff --git a/test/EndToEnd/GivenSelfContainedAppsRollForward.cs b/test/EndToEnd/GivenSelfContainedAppsRollForward.cs index 192b968b2..859aa4eb6 100644 --- a/test/EndToEnd/GivenSelfContainedAppsRollForward.cs +++ b/test/EndToEnd/GivenSelfContainedAppsRollForward.cs @@ -1,5 +1,4 @@ using System; -using System.Collections.Generic; using System.IO; using System.Linq; using System.Runtime.InteropServices; @@ -14,15 +13,22 @@ using Xunit; namespace EndToEnd { - public class GivenSelfContainedAppsRollForward : TestBase + public partial class GivenSelfContainedAppsRollForward : TestBase { - [Theory(Skip = "Runtime 1.1 support for openSUSE and Fedora 27 needed")] + [Theory] // MemberData is used instead of InlineData here so we can access it in another test to // verify that we are covering the latest release of .NET Core - [MemberData(nameof(SupportedNetCoreAppVersions))] + [ClassData(typeof(SupportedNetCoreAppVersions))] public void ItRollsForwardToTheLatestVersion(string minorVersion) { + // https://github.com/dotnet/cli/issues/9661: remove this once the ASP.NET version bump + // merges from 2.1.3xx -> 2.1.4xx -> 2.2.1xx + if (minorVersion == "2.1") + { + return; + } + var _testInstance = TestAssets.Get("TestAppSimple") .CreateInstance(identifier: minorVersion) .WithSourceFiles(); @@ -119,8 +125,8 @@ namespace EndToEnd .Element(ns + "TargetFramework") .Value; - SupportedNetCoreAppVersions.Select(v => $"netcoreapp{v[0]}") - .Should().Contain(targetFramework, $"the {nameof(SupportedNetCoreAppVersions)} property should include the default version " + + SupportedNetCoreAppVersions.Versions.Select(v => $"netcoreapp{v[0]}") + .Should().Contain(targetFramework, $"the {nameof(SupportedNetCoreAppVersions)}.{nameof(SupportedNetCoreAppVersions.Versions)} property should include the default version " + "of .NET Core created by \"dotnet new\""); } diff --git a/test/EndToEnd/SupportedNetCoreAppVersions.cs b/test/EndToEnd/SupportedNetCoreAppVersions.cs new file mode 100644 index 000000000..fe1eb44e2 --- /dev/null +++ b/test/EndToEnd/SupportedNetCoreAppVersions.cs @@ -0,0 +1,26 @@ +using System.Collections; +using System.Collections.Generic; +using System.Linq; +using Xunit; + +namespace EndToEnd +{ + public class SupportedNetCoreAppVersions : IEnumerable + { + public IEnumerator GetEnumerator() => Versions.GetEnumerator(); + IEnumerator IEnumerable.GetEnumerator() => GetEnumerator(); + public static IEnumerable Versions + { + get + { + return new[] + { + "1.0", + "1.1", + "2.0", + "2.1" + }.Select(version => new object[] { version }); + } + } + } +} diff --git a/test/Microsoft.DotNet.TestFramework/TestAssetInstance.cs b/test/Microsoft.DotNet.TestFramework/TestAssetInstance.cs index 9c1cd9f93..69a67a240 100644 --- a/test/Microsoft.DotNet.TestFramework/TestAssetInstance.cs +++ b/test/Microsoft.DotNet.TestFramework/TestAssetInstance.cs @@ -117,7 +117,7 @@ namespace Microsoft.DotNet.TestFramework var content = @" - + "; diff --git a/test/dotnet-test.Tests/CollectCodeCoverage.runsettings b/test/dotnet-test.Tests/CollectCodeCoverage.runsettings new file mode 100644 index 000000000..1119d1909 --- /dev/null +++ b/test/dotnet-test.Tests/CollectCodeCoverage.runsettings @@ -0,0 +1,25 @@ + + + + + + + + + + .*Test.dll + + + + + True + True + True + False + + + + + + +