将应用程序作为azure webjob运行时,C#nuget包依赖项整合失败
作为控制台应用程序作为Azure webjob运行时出现异常:将应用程序作为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
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
- 统一
- 联合拦截
因为它们都依赖于Unity.Container。强制我们使用assemblybinding来解决此问题,或者仅使用依赖于相同软件包的版本,请尝试执行以下步骤,因为您所采取的方法是正确的:
- 卸载
和Azure.Identity
nuget软件包Azure.Security.KeyVault.Secrets
- 删除所有关联的程序集绑定
- 删除项目文件夹中的
和bin
文件夹obj
- 安装
并重新生成解决方案Azure.Core版本>=1.6.0
- 部署解决方案
这些应该是理想的。我认为有一些过时的依赖关系正在被部署。如果尚未通过管道进行部署,也可以尝试进行部署。尝试执行以下步骤,因为所采取的方法是正确的:
- 卸载
和Azure.Identity
nuget软件包Azure.Security.KeyVault.Secrets
- 删除所有关联的程序集绑定
- 删除项目文件夹中的
和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。