【问题标题】:Could not load file or assembly System.Runtime, Version=4.2.0.0 running Core 2.0 App on Azure无法加载文件或程序集 System.Runtime,版本 = 4.2.0.0 在 Azure 上运行 Core 2.0 应用程序
【发布时间】:2017-10-18 19:41:38
【问题描述】:

我使用 VS Code 开发了一个托管在控制台中的简单 F# Suave 应用程序。

目标框架是core 2.0,在本地运行良好。代码由 VSTS 构建和打包(参考System.Runtime 4.3.0),然后部署到 Azure 应用服务。

当我调用该网站时,它最终会超时并显示 HTTP 500,同时 suave*.log 被写入异常:

未处理的异常:System.IO.FileNotFoundException:无法加载文件或程序集“System.Runtime,Version=4.2.0.0,Culture=neutral,PublicKeyToken=b03f5f7f11d50a3a”或其依赖项之一。系统找不到指定的文件。

  • 我没有从 1.1 或 2.0 更改框架,无论如何清理了 wwwroot
  • 在 web.config 和 app.config 中尝试了程序集重定向

这是否意味着某些包仍然引用 4.2.0.0? Azure有错吗?

【问题讨论】:

  • 你有 Visual Studio 吗?如果直接通过 Visual Studio 将项目部署到 Azure 会有什么结果?你能用一个新项目重现这个问题吗? VSTS 构建和发布定义的任务是什么?能否在 OneDrive 上分享详细的 VSTS 构建和发布日志?
  • 我有VS但是不能发布项目,因为它是一个consoleapp;一切都由 VSTS 完成。我还没有尝试用一个新项目来重现这个,这需要一些时间来设置。与此同时,我确实必须在 onedrive 上构建步骤和日志:link
  • 能否通过 dotnet 命令 (dotnet xxx.dll) 运行该应用程序?如果是这样,您可以从 build 下载工件,然后运行它并检查结果。另一方面,对新项目进行测试可以缩小问题范围。
  • 这个还没解决,虽然我发现了一些;在外部它看起来像 System.Runtime 4.3.0.0 被引用(在包目录中,在 IDE 中)但是在检查 de 编译的 dll 时,引用是 4.2.0.0。我找到了一个描述类似问题的链接 (github.com/dotnet/core/issues/730),但那里使用的解决方案还没有解决我的问题。我想尝试的下一件事是使用 Suave 部署 F# AspNetCore 应用程序,但我认为 Suave.AspNetCore 包不支持 .Net Core 2.0。我在这里重新考虑我的整个堆栈......
  • 可以通过dotnet命令运行应用吗?

标签: azure f# .net-core


【解决方案1】:

我通过创建和独立部署 (https://docs.microsoft.com/en-us/dotnet/core/deploying/) 解决了该错误,尽管我不认为这是更可取的解决方案。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-01-14
    • 1970-01-01
    • 2020-04-23
    • 1970-01-01
    相关资源
    最近更新 更多