发布自包含控制台应用程序失败

时间:2018-06-28 15:29:26

标签: .net-core

我安装了.NET SDK 2.1.301-win-x64.exe,然后将所有nuget软件包更新为2.1.1

在我的WebApp中,我有Nuget软件包Microsoft.AspNetCore.All 2.1.1Microsft.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属性,则会发生此问题   构建或发布,但不在还原过程中。”

此错误的来源是一个引用的项目。

我做错了什么?如果您需要其他信息,请告诉我。

1 个答案:

答案 0 :(得分:9)

这是目前已知的问题。在您引用的项目的csproj文件中,设置TargetLatestRuntimePatch属性:

<PropertyGroup>
  <TargetLatestRuntimePatch>true</TargetLatestRuntimePatch>
</PropertyGroup>

仅当.NET Core应用程序引用另一个.NET Core应用程序并且自包含的前滚仅在发布期间部分启动时才会发生。

对于便携式应用程序,以Microsoft.NETCore.App的2.1.0版本为目标已经足够,并且在目标计算机上运行时,将自动使用该计算机上可用的最新补丁程序。在最近的工具中,进行了更改,以便该工具将对自包含的应用程序使用最新的已知修补程序版本,以便您将最新的修补程序版本自动捆绑到您的应用程序中。但是,这不会遍历项目间引用。

有关更多信息,请参见Self-contained deployment runtime roll forward