【问题标题】:'runtimes' Folder after Publishing a .Net Core App to Azure Publish Via VS Online将 .Net Core 应用程序发布到 Azure 通过 VS Online 发布后的“运行时”文件夹
【发布时间】:2017-01-20 02:50:21
【问题描述】:

与我的所有项目文件一起发布的“运行时”文件夹的目的是什么?我有一个 VS Online 帐户,并通过那里配置了构建/部署过程。 'runtimes' 文件夹肯定不是源代码管理或我的项目文件夹中存在的文件夹。

'runtimes' 文件夹内容:

示例内容:

谢谢,
画了

【问题讨论】:

  • 试图自己解决这个问题 - 在官方文档中找不到任何信息。

标签: asp.net-core .net-core azure-web-app-service


【解决方案1】:

与@Gregory_Ott 一样,我遇到了类似的问题,我的部署是 FDD 部署,并且仍在创建“运行时”文件夹。我所做的只是提到了运行时并将自包含属性设置为 false。 在以下示例中,我使用 dotnet 发布:

dotnet publish -c Release -o ..\publish --runtime win-x64 --self-contained false

以下链接应该可以帮助您进行部署: https://docs.microsoft.com/en-us/dotnet/core/deploying/deploy-with-cli

【讨论】:

    【解决方案2】:

    这些存在是因为您将应用程序构建为一个独立的应用程序,而不是依赖于安装在执行它的机器上的框架的应用程序。可在 https://docs.microsoft.com/en-us/dotnet/articles/core/deploying/ 找到文档,描述可用于控制此输出的各种选项。

    【讨论】:

    • 此链接未提及“运行时”文件夹。在我的例子中,一个 FDD 部署(没有运行时选项),运行时文件夹被创建。
    • 如何过滤特定环境行要删除win-86
    • 我认为这个答案是错误的。该文件夹存在是因为您正在创建跨平台应用程序。
    【解决方案3】:

    FWIW,我在使用 .NET 5 应用程序时遇到了这种情况。输出目录中有一个空的“运行时”项目。浪费了几分钟后,我意识到该文件夹​​是以前构建的遗留物。我完全删除了 bin/obj 文件夹并再次发布,输出中不再存在“运行时”文件夹。我不必更改项目文件或构建选项中的任何内容。希望它也可以为其他人节省几分钟。

    【讨论】:

      【解决方案4】:

      如果选择了便携目标运行时,则创建runtime文件夹。

      【讨论】:

        【解决方案5】:

        这是否可以解释 FDD 部署中存在运行时文件夹:

        具有第三方依赖关系的框架依赖部署仅 与其第三方依赖项一样可移植。例如,如果一个 第三方库仅支持 macOS,该应用程序不可移植到 视窗系统。如果第三方依赖项本身会发生这种情况 取决于本机代码。一个很好的例子是 Kestrel 服务器, 这需要对 libuv 的本机依赖。 创建 FDD 时 对于具有这种第三方依赖的应用程序, 发布的输出包含每个运行时标识符 (RID) 的文件夹 本机依赖项支持(并且存在于其 NuGet 中 包)。

        来源:https://docs.microsoft.com/en-us/dotnet/core/deploying/deploy-with-vs?tabs=vs156#framework-dependent-deployment

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2018-11-17
          • 1970-01-01
          • 1970-01-01
          • 2023-03-16
          相关资源
          最近更新 更多