.NET 8 installcredprovider scripts (#524)

Add support for the new .NET 8 and .NET Framework 4.8.1 versions in the
`installcredprovider` command line scripts.

Invoke using the `$InstallNet8` or `$AddNetfx48` switch parameters for
the `installcredprovider.ps1` script, or
`USE_NET8_ARTIFACTS_CREDENTIAL_PROVIDER` for `installcredprovider.sh`
This commit is contained in:
Coby Allred 2024-10-10 13:13:36 -07:00 коммит произвёл GitHub
Родитель 3e4f3cac77
Коммит 2a2891c55c
Не найден ключ, соответствующий данной подписи
Идентификатор ключа GPG: B5690EEEBB952194
3 изменённых файлов: 47 добавлений и 5 удалений

Просмотреть файл

@ -41,8 +41,11 @@ Dotnet needs the `netcore` version to be installed. NuGet and MSBuild need the `
[PowerShell helper script](helpers/installcredprovider.ps1)
- To install netcore, run `installcredprovider.ps1`
- e.g. `iex "& { $(irm https://aka.ms/install-artifacts-credprovider.ps1) }"`
- .NET 6 bits can be installed using `iex "& { $(irm https://aka.ms/install-artifacts-credprovider.ps1) } -InstallNet6"`
- .NET 8 bits can be installed using `iex "& { $(irm https://aka.ms/install-artifacts-credprovider.ps1) } -InstallNet8"`
- To install both netfx and netcore, run `installcredprovider.ps1 -AddNetfx`. The netfx version is needed for nuget.exe.
- e.g. `iex "& { $(irm https://aka.ms/install-artifacts-credprovider.ps1) } -AddNetfx"`
- .NET Framework 4.8.1 support is available using the `-AddNetFx48` flag
#### Manual installation on Windows
@ -72,7 +75,7 @@ Examples:
Using the above is recommended, but as per [NuGet's plugin discovery rules](https://github.com/NuGet/Home/wiki/NuGet-cross-plat-authentication-plugin#plugin-installation-and-discovery), alternatively you can install the credential provider to a location you prefer, and then set the environment variable NUGET_PLUGIN_PATHS to the .dll of the credential provider found in plugins\netcore\CredentialProvider.Microsoft\CredentialProvider.Microsoft.dll. For example, $env:NUGET_PLUGIN_PATHS="my-alternative-location\CredentialProvider.Microsoft.dll".
Users requiring .NET 6, such as ARM64 users, can manually download the .NET 6 version `Microsoft.Net6.NuGet.CredentialProvider` of the [1.0.0 release](https://github.com/microsoft/artifacts-credprovider/releases/tag/v1.0.0).
Users requiring .NET 6, such as ARM64 users, can manually download the .NET 6 version `Microsoft.Net6.NuGet.CredentialProvider` of the [1.0.0 release](https://github.com/microsoft/artifacts-credprovider/releases/tag/v1.0.0). Support for .NET 8 was added in [release 1.3.0](https://github.com/microsoft/artifacts-credprovider/releases/tag/v1.3.0) and can be downloaded with the `Microsoft.Net8.NuGet.CredentialProvider` archive.
### Automatic usage
- MSBuild in Visual Studio Developer Command Prompt with Visual Studio 15.9+

Просмотреть файл

@ -8,12 +8,16 @@
param(
# whether or not to install netfx folder for nuget
[switch]$AddNetfx,
# whether or not to install netfx 4.8.1 folder for nuget
[switch]$AddNetfx48,
# override existing cred provider with the latest version
[switch]$Force,
# install the version specified
[string]$Version,
# install Net6 version of the netcore cred provider instead of NetCore3.1
[switch]$InstallNet6 = $true
# install the .NET 6 cred provider instead of NetCore3.1
[switch]$InstallNet6 = $true,
# install the .NET 8 cred provider instead of NetCore3.1
[switch]$InstallNet8
)
$script:ErrorActionPreference='Stop'
@ -27,6 +31,19 @@ if ($Version.StartsWith("0.") -and $InstallNet6 -eq $True) {
Write-Error "You cannot install the .Net 6 version with versions lower than 1.0.0"
return
}
if (($Version.StartsWith("0.") -or $Version.StartsWith("1.0") -or $Version.StartsWith("1.1") -or $Version.StartsWith("1.2")) -and
($InstallNet8 -eq $True -or $AddNetfx48 -eq $True)) {
Write-Error "You cannot install the .Net 8 or NetFX 4.8.1 version or with versions lower than 1.3.0"
return
}
if ($AddNetfx -eq $True -and $AddNetfx48 -eq $True) {
Write-Error "Please select a single .Net framework version to install"
return
}
if ($InstallNet6 -eq $True -and $InstallNet8 -eq $True) {
# InstallNet6 defaults to true, in the case of .Net 8 install, overwrite
$InstallNet6 = $False
}
$userProfilePath = [System.Environment]::GetFolderPath([System.Environment+SpecialFolder]::UserProfile);
if ($userProfilePath -ne '') {
@ -94,9 +111,15 @@ if ($Version.StartsWith("0.")) {
if ($InstallNet6 -eq $True) {
$zipFile = "Microsoft.Net6.NuGet.CredentialProvider.zip"
}
if ($InstallNet8 -eq $True) {
$zipFile = "Microsoft.Net8.NuGet.CredentialProvider.zip"
}
if ($AddNetfx -eq $True) {
$zipFile = "Microsoft.NuGet.CredentialProvider.zip"
}
if ($AddNetfx48 -eq $True) {
$zipFile = "Microsoft.NetFx48.NuGet.CredentialProvider.zip"
}
function InstallZip {
Write-Verbose "Using $zipFile"
@ -152,7 +175,7 @@ function InstallZip {
InstallZip
# Remove existing content and copy netfx directories to plugins directory
if ($AddNetfx -eq $True) {
if ($AddNetfx -eq $True -or $AddNetfx48 -eq $True) {
if ($netfxExists) {
Write-Verbose "Removing existing content from $fullNetfxCredProviderPath"
Remove-Item $fullNetfxCredProviderPath -Force -Recurse
@ -169,6 +192,12 @@ if ($AddNetfx -eq $True -and $InstallNet6 -eq $True) {
Write-Verbose "Installing Net6"
InstallZip
}
if ($AddNetfx -eq $True -and $InstallNet8 -eq $True) {
$zipFile = "Microsoft.Net8.NuGet.CredentialProvider.zip"
Write-Verbose "Installing Net8"
InstallZip
}
# Remove existing content and copy netcore directories to plugins directory
if ($netcoreExists) {
Write-Verbose "Removing existing content from $fullNetcoreCredProviderPath"

Просмотреть файл

@ -18,7 +18,17 @@ if [ -z ${USE_NET6_ARTIFACTS_CREDENTIAL_PROVIDER} ] || [ ${USE_NET6_ARTIFACTS_CR
# throw if version starts with 0. (net6 not supported)
case ${AZURE_ARTIFACTS_CREDENTIAL_PROVIDER_VERSION} in
0.*|v0.*)
echo "ERROR: To install NET6 cred provider using the USE_NET6_ARTIFACTS_CREDENTIAL_PROVIDER variable, version to be installed must be 1.0.0. or greater. Check your AZURE_ARTIFACTS_CREDENTIAL_PROVIDER_VERSION variable."
echo "ERROR: To install NET6 cred provider using the USE_NET6_ARTIFACTS_CREDENTIAL_PROVIDER variable, version to be installed must be 1.0.0 or greater. Check your AZURE_ARTIFACTS_CREDENTIAL_PROVIDER_VERSION variable."
exit 1
;;
esac
else if [ -z ${USE_NET8_ARTIFACTS_CREDENTIAL_PROVIDER} ] || [ ${USE_NET8_ARTIFACTS_CREDENTIAL_PROVIDER} != "false" ]; then
FILE="Microsoft.Net8.NuGet.CredentialProvider.tar.gz"
# throw if version starts < 1.3.0. (net8 not supported)
case ${AZURE_ARTIFACTS_CREDENTIAL_PROVIDER_VERSION} in
0.*|v0.*|1.0.*|v1.0.*|1.1.*|v1.1.*|1.2.*|v1.2.*)
echo "ERROR: To install NET8 cred provider using the USE_NET8_ARTIFACTS_CREDENTIAL_PROVIDER variable, version to be installed must be 1.3.0 or greater. Check your AZURE_ARTIFACTS_CREDENTIAL_PROVIDER_VERSION variable."
exit 1
;;
esac