tldnr:如何将Microsoft.AspNetCore.App
从2.2.0
升级到2.2.2
?在软件包管理器用户界面中已禁用它。
当我创建一个测试项目时,我意识到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
答案 0 :(得分:2)
我发布此消息是为了回应Andy的GitHub错误,但将其重新发布到此处以进一步覆盖:
如果您使用的是.NET Core,则只需更新到补丁程序,便是在运行该应用程序的计算机(例如,服务器,开发箱等)上安装最新的补丁程序运行时。
.NET Core应用程序自动前滚至与您定位的主要/次要对关联的最高补丁程序版本。可以使用a setting in [appname].runtimeconfig.json
禁用此行为,但我们强烈建议,请保留该行为,以确保始终在最新的运行时上运行(包含所有已发布的安全修复程序)。
尽管我们建议您运行最新的补丁程序,但我们建议您不要更新您的应用程序以定位更高版本的补丁程序,因为您的应用程序将无法执行如果目标计算机上不存在该修补程序,请启动。补丁程序不应引入您需要更新的依赖的API,因此无需更新程序包引用。
答案 1 :(得分:1)
由于拥有2.2.2 .Net核心SDK,因此可以通过在RuntimeFrameworkVersion
中指定csproj
来强制ASP.Net的版本。
<PropertyGroup>
<RuntimeFrameworkVersion>2.2.2</RuntimeFrameworkVersion>
</PropertyGroup>
答案 2 :(得分:0)
有人知道如何正确执行此操作吗?
我已向AspNetCore Github提交了一个问题。
这是该https://github.com/aspnet/AspNetCore/issues/10249
的链接我认为这实际上是一个错误(VS错误或dotnet错误,我不知道)
让我们看看接下来会发生什么。
答案 3 :(得分:0)
我在2.2.8中遇到了类似的问题,安装了x86版本的SDK使其无法使用。似乎单元测试是32位进程?