Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/285.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将应用程序作为azure webjob运行时,C#nuget包依赖项整合失败_C#_Azure_Dependencies_Nuget - Fatal编程技术网

将应用程序作为azure webjob运行时,C#nuget包依赖项整合失败

将应用程序作为azure webjob运行时,C#nuget包依赖项整合失败,c#,azure,dependencies,nuget,C#,Azure,Dependencies,Nuget,作为控制台应用程序作为Azure webjob运行时出现异常: Unhandled Exception: System.IO.FileLoadException: Could not load file or assembly 'Azure.Core, Version=1.0.2.0, Culture=neutral, PublicKeyToken=92742159e12e44c8' or one of its dependencies. The located assembly's manif

作为控制台应用程序作为Azure webjob运行时出现异常:

Unhandled Exception: System.IO.FileLoadException: Could not load file or assembly 'Azure.Core, Version=1.0.2.0, Culture=neutral, PublicKeyToken=92742159e12e44c8' or one of its dependencies. The located assembly's manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040)
在本地,它工作并运行

参考:

  • Azure.Identity版本1.3.0,它依赖于Azure.Core版本>=1.6.0
  • Azure.Security.KeyVault.Secrets版本4.1.0,它依赖于Azure.Core版本>=1.0.2
当然,基于这些nuspec规范,它应该解析为Azure.Core1.6.0。它在本地运行,没有问题

然而,当我使用VS发布配置文件将其作为Azure Webjobs部署到我们的云上并运行应用程序时,我遇到了上述异常。(当然,部署的文件版本与本地版本1.6.0相同)

我知道我可以用汇编绑定来解决这个问题。说明版本0.0.0.0至1.6.0.0应解析为版本1.6.0.0

但我觉得这非常令人沮丧,因为它需要手工劳动,并且在更新版本到来时阻止我们更新包,因为那时我们还必须提醒自己更新AssemblyBinding

我觉得有更好的解决办法,或者我们做错了什么。但我根本不知道从哪里开始寻找解决方案。我希望能从你们身上得到一些见解

附言:

这种现象让我抓狂,因为我们在使用软件包时面临类似的问题:

  • 统一
  • 联合拦截

因为它们都依赖于Unity.Container。强制我们使用assemblybinding来解决此问题,或者仅使用依赖于相同软件包的版本,请尝试执行以下步骤,因为您所采取的方法是正确的:

  • 卸载
    Azure.Identity
    Azure.Security.KeyVault.Secrets
    nuget软件包
  • 删除所有关联的程序集绑定
  • 删除项目文件夹中的
    bin
    obj
    文件夹
  • 安装
    Azure.Core版本>=1.6.0
    并重新生成解决方案
  • 部署解决方案

这些应该是理想的。我认为有一些过时的依赖关系正在被部署。如果尚未通过管道进行部署,也可以尝试进行部署。

尝试执行以下步骤,因为所采取的方法是正确的:

  • 卸载
    Azure.Identity
    Azure.Security.KeyVault.Secrets
    nuget软件包
  • 删除所有关联的程序集绑定
  • 删除项目文件夹中的
    bin
    obj
    文件夹
  • 安装
    Azure.Core版本>=1.6.0
    并重新生成解决方案
  • 部署解决方案

这些应该是理想的。我认为有一些过时的依赖关系正在被部署。如果尚未通过管道进行部署,您也可以尝试进行部署。

好的-您有什么问题?您可以尝试手动删除bin和obj文件夹以及package.config文件。然后清除nuget缓存。(当然全部来自目标机器)在通过发布配置文件重新部署之后。@sommen我的问题是,是否有我做错的事情导致了此异常。或者是使用assemblybinding@Proliges在发布之前,我会清除部署到的文件夹。我不认为目标机器缓存了nuget包。。。这不是在本地解析为.dll文件并保存到/bin/文件夹中。然后发表了?我不确定这里的答案,但我知道一种获取更多信息的可能方法。如果您将fuslogvw.exe作为webjob上的后台任务部署并运行,那么应该可以为您提供有关运行时绑定评估发生了什么的日志信息,这可能有助于回答您的问题。记住还要复制flogvwrc.dll。好的-那你有什么问题?你可以尝试手动删除bin和obj文件夹以及package.config文件。然后清除nuget缓存。(当然全部来自目标机器)在通过发布配置文件重新部署之后。@sommen我的问题是,是否有我做错的事情导致了此异常。或者是使用assemblybinding@Proliges在发布之前,我会清除部署到的文件夹。我不认为目标机器缓存了nuget包。。。这不是在本地解析为.dll文件并保存到/bin/文件夹中。然后发表了?我不确定这里的答案,但我知道一种获取更多信息的可能方法。如果您将fuslogvw.exe作为webjob上的后台任务部署并运行,那么应该可以为您提供有关运行时绑定评估发生了什么的日志信息,这可能有助于回答您的问题。记住还要复制flogvwrc.dll。