【问题标题】:Metadata file could not be opened -- PE image doesn't contain managed metadata无法打开元数据文件 -- PE 映像不包含托管元数据
【发布时间】:2017-02-10 16:14:16
【问题描述】:

在 azure 函数中,我使用以下说明将私有 dll 上传到 bin 文件夹

如果您需要引用私有程序集,可以将程序集文件上传到与您的函数相关的 bin 文件夹中,并使用文件名(例如#r“MyAssembly.dll”)引用它。

但我在运行该函数时,每个 dll 都会出现此错误。 "无法打开元数据文件 -- PE 映像不包含托管元数据"

【问题讨论】:

    标签: azure azure-functions


    【解决方案1】:

    看起来您也在添加对本机二进制文件的引用。您的引用必须是 .NET 程序集。如果您正在部署本机间接依赖项,则无需从函数脚本中引用它们。

    更新:上次门户部署存在缺陷,导致门户中上传的文件内容以多部分表单数据为前缀和后缀,导致文件无效。

    该问题已修复并正在推出,但在此期间,请使用 Kudu 上传文件以解决此问题。您可以找到有关问题的更多信息here(并通过问题链接)

    【讨论】:

    • 我遇到了与 OP 相同的问题。我的程序集针对.Net 4.6。您还有其他想法吗?
    • Marc,您能否分享更多关于您如何引用程序集、如何部署它等的详细信息?这是您可以使用可以共享的代码轻松复制的东西吗?如果是这样,你能在 GitHub 上设置一个 repo 以便我们看看吗?
    • 删除并重新创建函数修复了这个错误,但我仍然遇到另一个错误。 @FabioCavalcante 当你有机会时,你能看看这个stackoverflow.com/questions/42212166/…
    • 只是出于好奇,我上面描述的内容(明确引用了非托管 DLL)是您最初拥有的吗?这种绑定失败导致更正后状态不佳的情况应在运行时的下一个版本中解决。我已对您的其他问题添加了评论。
    • @Marc 对答案添加了更新,希望能为您提供有关导致问题的原因的更多信息。
    猜你喜欢
    • 1970-01-01
    • 2018-11-26
    • 2021-02-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多