.net dotnet构建到特定框架版本
我正在使用前几天刚刚发布的最新.NET SDK(1.0.1,从安装)来构建带有“dotnet publish”的项目。出于本问题范围之外的原因,我正在尝试构建应用程序,以便它们在稍旧的框架版本(1.0.3和1.1.0,而不是最新的1.0.4和1.1.0)上运行 如果我构建的项目指定了.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
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)版本的特定补丁版本。