【问题标题】:dotnet build to specific framework versiondotnet 构建到特定框架版本
【发布时间】:2017-08-01 06:13:38
【问题描述】:

我正在使用前几天刚刚发布的最新 .NET SDK(1.0.1,从 https://dotnetcli.blob.core.windows.net/dotnet/Sdk/1.0.1/dotnet-dev-debian-x64.1.0.1.tar.gz 安装)使用“dotnet publish”构建项目。由于此问题范围之外的原因,我正在尝试构建应用程序,以便它们在稍旧版本的框架(1.0.3 和 1.1.0,而不是最新的 1.0.4 和 1.1.0)上运行。

如果我构建一个指定 <TargetFramework>netcoreapp1.1</TargetFramework> 的项目,它将无法在仅安装了 1.1.0 版本的平台上运行。

看起来我可以在我的 csproj 中基于每个项目指定 <RuntimeFrameworkVersion>1.1.0</RuntimeFrameworkVersion>,但是我有什么方法可以配置 dotnet,以便默认定位 netcoreapp1.1 以 1.1.0 为目标?

【问题讨论】:

  • 您使用的是什么 IDE/版本/语言?
  • 无 IDE,所有文本文件,通过命令行上的 dotnet 1.0.1 执行所有操作。 C#。
  • “1.0.3 和 1.1.0”是什么意思。这两个版本指的是什么?您是在谈论 LTS 与当前版本的运行时吗?还是你说的是运行时版本和SDK版本?
  • @ShaunLuttin 我指的是 LTS (1.0) 和当前 (1.1) 运行时版本的特定补丁版本。

标签: .net .net-core


【解决方案1】:

你是对的,当你只指定<TargetFramework>netcoreapp1.1</TargetFramework>时,默认是你的应用程序以最新的运行时为目标:1.1.1Here's the PR 进行了更改。就像您提到的那样,这意味着您的应用程序不再在只有 1.1.0 的机器上运行。

有什么方法可以配置 dotnet,使 netcoreapp1.1 默认以 1.1.0 为目标?

在我看来,你有两个选择:

  1. 调用dotnet publish时,可以传入MSBuild参数。所以你可以说dotnet publish -c Release /p:RuntimeFrameworkVersion=1.1.0
  2. 您可以在要为其设置默认属性的所有.csproj 文件上方添加一个Directory.Build.props 文件。这个.props 文件将自动导入到它下面的所有.csproj 文件中。您可以在其中设置常用属性:

    <Project>
      <PropertyGroup>
        <RuntimeFrameworkVersion>1.1.0</RuntimeFrameworkVersion>
      </PropertyGroup>
    </Project>
    

现在您的所有项目都将自动设置此属性。

【讨论】:

    猜你喜欢
    • 2023-02-06
    • 1970-01-01
    • 1970-01-01
    • 2020-05-26
    • 2019-06-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-06-17
    相关资源
    最近更新 更多