【问题标题】:Publishing a Self-contained Console app fails发布独立控制台应用程序失败
【发布时间】:2018-06-28 15:29:26
【问题描述】:

我安装了.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 属性,则可能会出现此问题 构建或发布,但不是在恢复期间。”

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

我做错了什么?如果您需要更多信息,请告诉我,然后我会添加。

【问题讨论】:

    标签: .net-core


    【解决方案1】:

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

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

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

    对于可移植应用程序,目标为Microsoft.NETCore.App 的 2.1.0 版本就足够了,当在目标机器上运行时,将自动使用机器上可用的最新补丁。在最近的工具中,进行了更改,以便工具将最新的已知补丁版本用于独立的应用程序,以便您自动将最新的补丁版本与您的应用程序捆绑在一起。但是,这不会通过项目到项目的引用。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-11-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-01-11
      • 1970-01-01
      相关资源
      最近更新 更多