我安装了.NET SDK 2.1.301-win-x64.exe
,然后将所有nuget软件包更新为2.1.1
。
在我的WebApp中,我有Nuget软件包Microsoft.AspNetCore.All 2.1.1
和Microsft.NETCore.App 2.1.0
。在Nuget窗口中,我看到也有版本2.1.1,但是我无法选择它(受项目限制)
我的控制台应用程序中的故事相同:Microsft.NETCore.App 2.1.0
我的第一个问题:这里已经出问题了吗?还是这种预期的行为?
如果我将WebApp构建为独立的应用程序,则效果很好。
如果我将控制台应用程序设置为自包含应用程序(自包含/ win-x64)。我收到以下错误:
使用Microsoft.NETCore.App 2.1.1版还原了该项目, 但在当前设置下,将使用版本2.1.0。至 解决此问题,请确保使用相同的设置进行还原 以及后续操作(例如构建或发布)。通常 如果在运行时设置了RuntimeIdentifier属性,则会发生此问题 构建或发布,但不在还原过程中。”
此错误的来源是一个引用的项目。
我做错了什么?如果您需要其他信息,请告诉我。
答案 0 :(得分:9)
这是目前已知的问题。在您引用的项目的csproj文件中,设置TargetLatestRuntimePatch
属性:
<PropertyGroup>
<TargetLatestRuntimePatch>true</TargetLatestRuntimePatch>
</PropertyGroup>
仅当.NET Core应用程序引用另一个.NET Core应用程序并且自包含的前滚仅在发布期间部分启动时才会发生。
对于便携式应用程序,以Microsoft.NETCore.App
的2.1.0版本为目标已经足够,并且在目标计算机上运行时,将自动使用该计算机上可用的最新补丁程序。在最近的工具中,进行了更改,以便该工具将对自包含的应用程序使用最新的已知修补程序版本,以便您将最新的修补程序版本自动捆绑到您的应用程序中。但是,这不会遍历项目间引用。