Azure的功能“无法加载文件或程序集”(Azure Function “Could not loa

2019-10-31 06:17发布

所以我们一直在爱有关的功能以外的所有事实,我们必须继续像更新某些库的想法Azure的功能背后的某些库。 Microsoft.Owin就是其中之一。 我们很乐意为4版本。

无法加载文件或程序集“Microsoft.Owin,版本= 2.1.0.0,文化=中性公钥= 31bf3856ad364e35”或它的一个依赖。 在位于集清单定义不匹配的程序集引用。 (从HRESULT异常:0x80131040)

我已经试过各种如通过Project.json迫使以及在整个解决方案中集成。 本地调试在VS同样的错误发生。 因此,部署以及地方发生这种情况。

我们得到与其他图书馆,如AMQP的类似问题。

我们运行的是最新的SDK以及 - Microsoft.NET.SDK.Functions版本1.0.13

Answer 1:

以下问题的可能重复。

Azure的功能-无法加载文件或程序集“” Microsoft.WindowsAzure.Storage”

试着找Owin是否是Azure的功能或没有机库。 如果是的话,您可以直接引用它。 r组成 “Library.Namspace”。 否则,您需要按照上面的线程的建议。



Answer 2:

阿育王感谢您的快速响应。 我想我可能已经找到了解决这一问题。

https://blog.slaks.net/2013-12-25/redirecting-assembly-loads-at-runtime/而是在特定的这篇文章: https://blog.slaks.net/2013-12-25/redirecting-组装载荷-在运行时/

请看“npiasecki评论2017年5月2日,”和他解释那里。 这几乎奏效了,所有现在工作 - 通过Visual Studio的本地,调试。

 private static void ConfigureBindingRedirects()
{
   BindingRedirect.RedirectAssembly("Microsoft.Owin", new Version("4.0.0"), "31bf3856ad364e35");

}

private static void RedirectAssembly(
    string shortName,
    Version targetVersion,
    string publicKeyToken)
{
    ResolveEventHandler handler = null;

    handler = (sender, args) =>
    {
        var requestedAssembly = new AssemblyName(args.Name);

        if (requestedAssembly.Name != shortName)
        {
            return null;
        }

        var targetPublicKeyToken = new AssemblyName("x, PublicKeyToken=" + publicKeyToken)
            .GetPublicKeyToken();
        requestedAssembly.Version = targetVersion;
        requestedAssembly.SetPublicKeyToken(targetPublicKeyToken);
        requestedAssembly.CultureInfo = CultureInfo.InvariantCulture;

        AppDomain.CurrentDomain.AssemblyResolve -= handler;

        return Assembly.Load(requestedAssembly);
    };

    AppDomain.CurrentDomain.AssemblyResolve += handler;
}


文章来源: Azure Function “Could not load file or assembly”