当我需要启用Tls1.2时如何从下载的脚本中安装dotnet core?

问题描述 投票:0回答:1

我有一个CI / CD脚本,该脚本使用脚本(https://dot.net/v1/dotnet-install.ps1)安装dotnet core。我们下载(并缓存)脚本,然后想使用Powershell从脚本直接调用它

powershell -NoLogo -NonInteractive -NoProfile -ExecutionPolicy unrestricted -File "%MYDIR%\dotnet-install.ps1" -Version 2.1.806

但是,在CI / CD机器上,此操作失败:

dotnet-install: Downloading link: https://dotnetcli.[snip]/dotnet-sdk-2.1.806-win-x86.zip
dotnet-install: Cannot download: https://dotnetcli.[snip]/dotnet-sdk-2.1.806-win-x86.zip
dotnet-install: Downloading legacy link: https://dotnetcli.[snip]/dotnet-dev-win-x86.2.1.806.zip
dotnet-install: Cannot download: https://dotnetcli.[snip]/dotnet-dev-win-x86.2.1.806.zip
Could not find/download: ".NET Core SDK" with version = 2.1.806

事实证明这失败了,因为我们无法建立安全连接,需要启用Tls1.2

我该如何修改powershell命令来执行此操作?

powershell .net-core tls1.2
1个回答
0
投票

有多个直接从下载的文件中调用文件的示例。例如:在官方文档页面(https://docs.microsoft.com/en-us/dotnet/core/tools/dotnet-install-script):

powershell -NoProfile -ExecutionPolicy unrestricted -Command "[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12; &([scriptblock]::Create((Invoke-WebRequest -UseBasicParsing 'https://dot.net/v1/dotnet-install.ps1'))) <additional install-script args>"

但是,我无法直接从本地下载/缓存的文件中找到执行此操作的任何示例。如果您需要使用TLS 1.2调用的本地文件,请尝试以下操作:

powershell -NoLogo -NonInteractive -NoProfile -ExecutionPolicy unrestricted -Command "[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12; . '%MYDIR%\dotnet-install.ps1'" -Version 2.1.806
© www.soinside.com 2019 - 2024. All rights reserved.