【问题标题】:Target a specific runtime version of .NET Core in VS2017在 VS2017 中定位特定运行时版本的 .NET Core
【发布时间】:2018-02-06 04:36:08
【问题描述】:

我在 Visual Studio 2015 中成功创建并部署了一个 .NET Core 应用程序。尽管 VS2015 中对 .NET Core 的工具和支持似乎正在消失,所以我决定重新开始使用 VS2017。但是我遇到的问题是版本控制。我的托管服务提供商正在运行 Plesk ~v12,并且只支持少数运行时间,而且绝对不是最新最好的。

在带有project.json 的 VS2015 中,我可以通过修改所有依赖项来定位特定的运行时版本,但是我看不到如何在 Visual Studio 2017 中执行此操作。我的主机回复说他们支持“1.0.3 "(最新 SDK 中的当前版本为 1.04)适用于 .NET Core 1.0 应用程序,以及适用于 .NET Core 1.1 应用程序的“1.1.0 和 1.1.1”。 (当前版本是最新SDK中的1.1.2)

当我将应用程序部署到我的主机时,我收到以下错误:

HTTP 错误 502.5 - 进程失败

我相信这是因为它正在寻找运行时 1.0.4。

那么,简而言之,我如何定位运行时版本 1.0.3?

【问题讨论】:

标签: visual-studio visual-studio-2017 .net-core


【解决方案1】:

要设置特定版本的 .Net Core 运行时,您可以将 the <RuntimeFrameworkVersion> element 添加到您的 csproj。例如,要使用 .Net Core 1.0.3,请使用:

<TargetFramework>netcoreapp1.0</TargetFramework>
<RuntimeFrameworkVersion>1.0.3</RuntimeFrameworkVersion>

【讨论】:

    【解决方案2】:

    您可以通过在解决方案的根目录中添加global.json 文件来指定要使用的 SDK(甚至是较旧的 SDK)。

    {
        "sdk": { "version" : "1.0.3" }
    }
    

    另外,可以使用this Powershell script远程安装SDK,所以如果SDK不在服务器上,你可以安装它。我们在我们的持续集成服务器上使用这种方法,因为我们需要的 SDK 没有安装在上面。

    【讨论】:

    • 虽然这可能仍然适用于 Visual Studio 2017,但我认为它不会持续很长时间,因为对 project.json 的支持已经被弃用了。
    • Visual Studio 2017 仍然支持project.json 中的sdk 参数,并且它不会消失,尽管它不支持任何其他旧的project.json 设置。见csharp.christiannagel.com/2017/01/10/dotnetcoreversionissues
    • 感谢您的链接。里面有很好的信息。
    • @NightOwl888,你在哪里读到/看到project.json 不会消失?在 VS2017 中创建一个新的 ASP.Net 项目根本不会给你 project.json 文件。
    • 基本上,没有project.json 文件意味着它将始终使用机器上安装的最新版本。仅当您希望强制它使用以前的版本时才需要它。也就是说,在您的情况下,最好使用它来确保您的本地副本在 SDK 的 1.0.3 版本上编译。
    猜你喜欢
    • 2020-07-29
    • 1970-01-01
    • 2011-01-26
    • 1970-01-01
    • 1970-01-01
    • 2021-09-05
    • 2021-09-26
    • 1970-01-01
    • 2017-08-16
    相关资源
    最近更新 更多