.net dotnet构建到特定框架版本

.net dotnet构建到特定框架版本,.net,.net-core,.net,.net Core,我正在使用前几天刚刚发布的最新.NET SDK(1.0.1,从安装)来构建带有“dotnet publish”的项目。出于本问题范围之外的原因,我正在尝试构建应用程序,以便它们在稍旧的框架版本(1.0.3和1.1.0,而不是最新的1.0.4和1.1.0)上运行 如果我构建的项目指定了netcoreapp1.1,它将不会在只安装了1.1.0版的平台上运行 看起来我可以在我的csproj中根据每个项目指定1.1.0,但是有没有任何方法可以配置dotnet,使目标netcoreapp1.1默认以1.1

我正在使用前几天刚刚发布的最新.NET SDK(1.0.1,从安装)来构建带有“dotnet publish”的项目。出于本问题范围之外的原因,我正在尝试构建应用程序,以便它们在稍旧的框架版本(1.0.3和1.1.0,而不是最新的1.0.4和1.1.0)上运行

如果我构建的项目指定了
netcoreapp1.1
,它将不会在只安装了1.1.0版的平台上运行


看起来我可以在我的csproj中根据每个项目指定
1.1.0
,但是有没有任何方法可以配置dotnet,使目标
netcoreapp1.1
默认以1.1.0为目标?

如果您只指定
netcoreapp1.1
,您是对的,默认情况下,应用程序以最新运行时为目标:
1.1.1
。这就改变了。正如您提到的,这意味着您的应用程序不再在只有
1.1.0
的机器上运行

是否有任何方法可以配置dotnet,使netcoreapp1.1的目标默认为1.1.0

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

  • 调用
    dotnetpublish
    时,可以传入MSBuild参数。所以你可以说
    dotnetpublish-c发布/p:RuntimeFrameworkVersion=1.1.0
  • 您可以在要为其设置默认属性的所有
    .csproj
    文件上方添加
    目录.Build.props
    文件。此
    .props
    文件将自动导入其下方的所有
    .csproj
    文件中。您可以在其中设置公共属性:

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

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

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