【问题标题】:.NET Core runtime/sdk versioning with .NET 461?.NET Core 运行时/SDK 版本控制与 .NET 461?
【发布时间】:2017-08-16 18:04:51
【问题描述】:

我对 .NET Core 的 SDK 和运行时版本控制越来越感到困惑,我怀疑我是唯一的一个。我想弄清楚一些事情。

我创建了一个面向 .NET 4.6.1 的 ASP.NET Core 应用程序 - 它适用于 4.6.1 库和 Net Standard 库。最近,作为 VS2017 推出的一部分,我从 project.json 切换到了 csproj。几周前,1.1.1 运行时与 SDK 1.0.1 一起发布,我下载了它 (https://github.com/dotnet/core/blob/master/release-notes/download-archive.md)。

dotnet --version 为我提供了正确的 SDK (1.0.1)

但是,在 cmd 中输入“dotnet”,我看到“版本:1.1.0”。这不应该说1.1.1吗?我的程序和功能显示已安装 1.1.1 运行时。

快进到托管我的应用程序:我根据https://docs.microsoft.com/en-us/aspnet/core/publishing/iis 安装了最新的 Windows Server 托管包以托管在 IIS 上,即 1.0.4&1.1.1。在我的服务器上安装它会安装“Microsoft .NET Core 1.0.4 & 1.1.1 - Windows Server Hosting”和“Microsoft .NET Core 1.0.4 - Runtime”。它不应该还安装了 1.1.1 运行时吗?它有效,所以也许没有必要。

最后,我的问题如下:

  1. 在面向 .NET 4.6.1 时,运行时版本是否重要?
  2. 运行时是否仅用于运行 IIS 到 kestrel 反向代理的 AspNetCoreModule?
  3. 安装新的 Windows 主机包会破坏已经在服务器上运行的现有项目吗?
  4. .Net 的 netstandard 包(如 MVC)版本控制是否与运行时版本相对应,还是只是常规语义版本控制?大多数“Microsoft.AspNetCore.X”软件包的最新版本是 1.1.1。

【问题讨论】:

    标签: asp.net .net iis asp.net-core


    【解决方案1】:

    我处于同样的情况,针对完整的 .NET Framework(在我的情况下为 4.5.2)编译我的 ASP.NET Core 应用程序并将其部署在 IIS 上。希望我能帮上忙。

    使用完整的 .NET 框架时,您需要在开发者机器上安装 SDK 进行编译,但要将其部署在 IIS 服务器上,您根本不需要安装任何 .NET Core 运行时。在我的 IIS 服务器上,我只需要安装 .NET Framework,然后按照此处的建议安装“Windows Server Hosting”:https://github.com/dotnet/core/blob/master/release-notes/download-archives/1.0.4-download.md,其命令行甚至不会在我的服务器上安装任何 .NET Core:

    DotNetCore.1.0.4_1.1.1-WindowsHosting.exe OPT_INSTALL_LTS_REDIST=0 OPT_INSTALL_FTS_REDIST=0
    

    此安装速度非常快,并且只部署了 IIS 运行 .NET Core 应用程序所需的最少文件量,主要是 aspnetcore.dll。我的服务器上什至没有目录“C:\Program Files\dotnet”(因此没有运行时或 sdk),而且我的应用程序运行良好。

    所以,我想说:

    1. 不,没关系,它不会针对任何 .NET Core 运行时运行
    2. 不,AspNetCore.dll 是 C++ 模块 (https://github.com/aspnet/AspNetCoreModule)
    3. 我看不出它怎么会破坏任何东西
    4. 目前,当您在 ASP.NET Core 应用程序中添加 Nuget 包时,它的版本控制对我来说似乎非常独立,这就是为什么微软现在提供元包来帮助人们使用正确的 Nuget 包集 (https://andrewlock.net/what-is-the-microsoft-aspnetcore-metapackage/ )

    关于:

    但是,在 cmd 中输入“dotnet”,我看到“版本:1.1.0”。不应该 这说1.1.1?我的程序和功能显示 1.1.1 运行时 已安装。

    我想知道同样的事情,无法弄清楚这是从哪里来的,也许它只是与 SDK 1.0.1 一起打包的“dotnet”命令行工具的版本,但我不能证明它。

    【讨论】:

    • 谢谢。这清楚了很多。当我安装了两个 WindowsHosting 时,我确实遇到了应用程序无法运行的问题。最佳做法可能是在安装新的时卸载以前的。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-15
    • 2019-01-13
    • 2021-09-11
    • 1970-01-01
    相关资源
    最近更新 更多