【发布时间】:2020-05-18 23:40:15
【问题描述】:
tldnr:如何将 Microsoft.AspNetCore.App 从 2.2.0 升级到 2.2.2?它在包管理器 UI 中被禁用。
当我创建一个测试项目时,我意识到 Microsoft.AspNetCore.App 是版本 2.2.2(最新版本),而在我的主 Api 项目中它是 2.2.0。
由于
,我无法更新它由 SDK 隐式引用。要更新软件包,请更新 SDK 它所属的
我确实安装了 SDK 2.2.104,should contain 2.2.2(我喜欢 Microsoft 的版本号直截了当)
C:\Users\matthias>dotnet --list-sdks
2.1.202 [C:\Program Files\dotnet\sdk]
2.1.402 [C:\Program Files\dotnet\sdk]
2.1.403 [C:\Program Files\dotnet\sdk]
2.1.503 [C:\Program Files\dotnet\sdk]
2.1.504 [C:\Program Files\dotnet\sdk]
2.1.600-preview-009472 [C:\Program Files\dotnet\sdk]
2.2.104 [C:\Program Files\dotnet\sdk]
将这一切更新为2.2.2 的正确方法是什么?我可以在csproj 中设置包的版本号,它似乎工作得很好,但我想这不是干净的方法。那为什么 UI 会禁用它。
项目文件来自默认模板。
<Project Sdk="Microsoft.NET.Sdk.Web">
<PropertyGroup>
<TargetFramework>netcoreapp2.2</TargetFramework>
<AspNetCoreHostingModel>InProcess</AspNetCoreHostingModel>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Microsoft.AspNetCore.App" />
</ItemGroup>
</Project>
来源:https://github.com/matthiaslischka/netcore222updateissue
更新:
我现在像 ESG 建议的那样将 RuntimeFrameworkVersion 2.2.2 添加到 csproj 中,现在我得到了这个奇怪的视图:
我用ILSpy检查了编译的DLL,它似乎仍然是2.2.0.0
【问题讨论】:
-
检查docs: implicit version,它有很好的记录。基本上:当从
PackageReference中省略Version属性时,它将始终使用BUILD SYSTEM 上安装的最新版本(假设您没有在 中手动指定特定包的特定版本>网络应用程序 csproj)。背后的想法是在重建时自动应用安全修复(对于独立应用程序或便携式应用程序的前滚) -
所以?那为什么不用
2.2.2呢?我安装了 SDK2.2.104what is 2.2.2。我添加了 csproj xml 和源链接。但无论如何它只是默认模板。 -
你最终解决了这个问题吗?
标签: asp.net-core .net-core asp.net-core-webapi