8pr*_*ons 34 .net entity-framework visual-studio nuget .net-core
我在csproj
文件中有以下代码:
<TargetFramework>netcoreapp1.0</TargetFramework>
在NuGet包管理器中,它说我有Microsoft.NETCore.App版本1.0.5
现在假设我在同一个csproj
文件中有以下代码:
<TargetFramework>netcoreapp1.0</TargetFramework>
<RuntimeFrameworkVersion>1.1.4</RuntimeFrameworkVersion>
NuGet包管理器现在会说我有Microsoft.NETCore.App版本1.1.4
我本质上是在.NETCore 2.0之前尝试使用最新的框架(转换时有一些EF问题),这将是.NETCore 1.1.4,但是多个Framework属性csproj
让我不确定使用哪个标签.我无法找到任何明显区分两者之间差异的资源.
Mar*_*ich 48
该TargetFramework
所使用的NuGet来解决依赖性,并确定要用于编译和构建应用程序的资产.(在幕后,还有一些类似的属性TargetFrameworkMoniker
并TargetFrameworkVersion
开始发挥作用,但SDK将其抽象为更简单TargetFramework
的框架知识).
的RuntimeFrameworkVersion
/是特定于.NET的核心netcoreapp
.SDK将为设置Microsoft.NETCore.App
的版本注入依赖关系RuntimeFrameworkVersion
,或者使用它知道的.NET Core <2.0的最新版本.然后,已解析的版本将写入runtimeconfig.json
.NET Core主机框架解析程序的文件,以解析要加载的共享框架的版本(例如,=> .NET Core 1.1.4运行时).
你能够使用的原因1.1.*
为netcoreapp1.0
是因为NuGet包实际上包含了必要的资产来构建.NET核心1.0.*的应用程序.然而,工具不知道这一点,所以你将得到一个.NET Core 1.0应用程序,但它将由1.1框架加载,因为这是runtimeconfig.json
文件中的最终结果.
重要的区别是:
Microsoft.NETCore.App
使用哪个版本的自包含可执行文件.
dotnet publish -r win7-x64
)1.0.3
您构建但已1.0.5
安装运行时的应用程序时,1.0.5
将自动使用运行时.RuntimeFrameworkVersion
并且发布了一个新版本的SDK,它知道.NET Core的较新补丁版本,它将自动使用最新版本.如果明确设置版本,则可能不会在不编辑项目文件的情况下更新.RuntimeFrameworkVersion
也是应用程序将加载的最小运行时间 - 如果将其设置为1.0.4
并尝试在仅1.0.3
安装的计算机上运行,则除非您编辑该runtimeconfig.json
文件,否则应用程序将无法启动.RuntimeFrameworkVersion
可以设置为浮动版本,这在定位预览版本或每日构建时很有用,例如2.1.0-preview1-*
将解析为preview1
配置的NuGet供稿上可用的最新版本.除了这些之外,使用更高版本构建的原因只有几个Microsoft.NETCore.App
,例如DiaSymReader
组件的构建错误修复.
在.NET Core 2.0中,版本RuntimeFrameworkVersion
将始终2.0.0
用于"可移植应用程序"(非自包含),因为框架的实现不再由依赖项提供,Microsoft.NETCore.App
并且此NuGet包仅用于为编译提供引用程序集.
归档时间: |
|
查看次数: |
14754 次 |
最近记录: |