代码之家  ›  专栏  ›  技术社区  ›  Water Cooler v2

安装2.1.500版后如何安装.NET Core SDK 2.1.401?

  •  0
  • Water Cooler v2  · 技术社区  · 5 年前

    我运行的是64位Windows 7 Home Premium。

    我将.NET核心安装更新为几天前的最新版本。 2.1.500

    不久之后,我想玩MS Build的源代码,所以我克隆了 MS Build git repo 并运行了它们的 build.cmd file d

    但是 it keep failing telling me it was not able to download the per requirements.net core version 2.1.401

    c:\source\of\msbuild>build.cmd
    
    dotnet安装:下载链接:
    https://dotnetcli.azureedge.net/dotnet/sdk/2.1.401/dotnet-sdk-2.1.401-win-x64.zip
    
    dotnet安装:无法下载:
    https://dotnetcli.azureedge.net/dotnet/sdk/2.1.401/dotnet-sdk-2.1.401-win-x64.zip
    
    dotnet安装:下载旧链接:
    https://dotnetcli.azureedge.net/dotnet/sdk/2.1.401/dotnet-dev-win-x64.2.1.401.zip
    
    使用“0”参数调用“invoke”时出现异常:
    “下载失败
    https://dotnetcli.azureedge.net/dotnet/sdk/2.1.401/dotnet-dev-win-x64.2.1.401.zip.“
    
    雅达雅达雅达雅达…
    < /代码> 
    
    

    因此,我下载了zip文件https://dotnetcli.azureedge.net/dotnet/sdk/2.1.401/dotnet-sdk-2.1.401-win-x64.zipmanually,and unzipped it to find adotnet.exein it.

    首先,我认为这是一个设置文件,我双击了它。它出现并很快消失。

    然后,在几次失败的尝试之后,我怀疑它确实是sdk本身,并且不是可安装的设置。因此,我检查了解压文件中的文件夹,它们完全匹配了我的文件夹(参见本问题底部的图片)。

    所以,现在,我不知道如何让我刚下载的.NET Core版本(v 2.1.401)与最新版本共存2.1.500.i do see that thec:\program files\do t net\sdk\.folder has some versions exist side:。

    c:\program files\dotnet\sdk>目录/b
    1.0.0
    1.0.0-预览2-003131
    2.1.500
    NuGetFallback文件夹
    < /代码> 
    
    

    那么,我应该继续手动处理我的文件夹吗?也就是说,我应该只复制粘贴我下载的文件夹,并将它们与我现有的文件夹合并吗?见下文。< /P>

    .MS Build git repo并运行他们的build.cmd文件as instructed.

    但是it kept failing告诉我它无法下载每个必需的.NET核心版本2.1.401.

    C:\Source\Of\MSBuild> build.cmd
    
    dotnet-install: Downloading link: 
    https://dotnetcli.azureedge.net/dotnet/Sdk/2.1.401/dotnet-sdk-2.1.401-win-x64.zip
    
    dotnet-install: Cannot download: 
    https://dotnetcli.azureedge.net/dotnet/Sdk/2.1.401/dotnet-sdk-2.1.401-win-x64.zip
    
    dotnet-install: Downloading legacy link: 
    https://dotnetcli.azureedge.net/dotnet/Sdk/2.1.401/dotnet-dev-win-x64.2.1.401.zip
    
    Exception calling "Invoke" with "0" argument(s): 
    "Failed to download 
    https://dotnetcli.azureedge.net/dotnet/Sdk/2.1.401/dotnet-dev-win-x64.2.1.401.zip."
    
    yada yada yada yada...
    

    所以我下载了压缩文件https://dotnetcli.azureedge.net/dotnet/Sdk/2.1.401/dotnet-sdk-2.1.401-win-x64.zip手动将其解压缩以查找dotnet.exe在里面。

    首先,我认为这是一个设置文件,我双击了它。它出现了,很快就消失了。

    然后,在几次失败的尝试之后,我怀疑确实是SDK本身不是一个可安装的装置。所以,我检查了解压文件中的文件夹,它们匹配确切地我的文件夹C:\Program Files\dotnet文件夹(请参阅此问题底部的图片)。

    所以,现在,我不知道该怎么做我刚下载的.NET核心版本(v 2.1.401)与最新版本共存2.1.500.我确实看到了C:\Program Files\dotnet\sdk\文件夹有多个版本并排存在:

    C:\Program Files\dotnet\sdk>dir /b
    1.0.0
    1.0.0-preview2-003131
    2.1.500
    NuGetFallbackFolder
    

    那么,我应该继续手动处理我的文件夹吗?也就是说,我应该只复制粘贴我下载的文件夹,并将它们与我现有的文件夹合并吗?见下文。

    1 回复  |  直到 5 年前
        1
  •  0
  •   Water Cooler v2    5 年前

    不必合并两个文件夹的内容。必须下载.NET核心安装程序。

    回答这个问题需要解决两个问题。

    1. 我下载了压缩文件中的二进制文件,而不是安装程序。我被引导安装二进制文件,因为我运行构建脚本时在控制台上看到的URL指向二进制文件而不是安装程序。

      .NET核心包含两种包:

      a.MSI安装人员;以及

      b.包含二进制文件的zip文件。当您希望在应用程序中保存.NET核心的私有副本时,这些功能非常有用。就像NPM软件包有与公共/全球软件包不同的私人安装一样。就像你举行私人集会一样( CopyLocal = True )与来自GAC或引用程序集文件夹的引用相反,您的应用程序中的.NET框架。

      this SDK download page on the Microsoft website . 它列出了每个版本的SDK和运行时的二进制文件和安装程序。

    2. Powershell script in the MS Build build process 下载只包含二进制文件的zip文件,它私下保存着这个版本的.NET内核。它要查找的版本在 DotNetCliVersion property in the Version.props file .

    From build1.ps

    function Build {
      if (![string]::IsNullOrEmpty($DotNetCoreSdkDir) -and 
                                   (Test-Path -Path $DotNetCoreSdkDir)) {
        $env:DOTNET_INSTALL_DIR = $DotNetCoreSdkDir
      }
      else {
        InstallDotNetCli
      }
    
      $env:DOTNET_HOST_PATH = Join-Path $env:DOTNET_INSTALL_DIR "dotnet.exe"
    
      ...