【问题标题】:InnerException throws TypeLoadException TypeLoadException: Could not load type 'System.UriTemplate' from assembly 'System.ServiceModel,InnerException 引发 TypeLoadException TypeLoadException:无法从程序集“System.ServiceModel”加载类型“System.UriTemplate”,
【发布时间】:2019-10-24 08:55:38
【问题描述】:

我尝试实现一个 azure 函数,但不断收到以下异常。

  "TypeLoadException: Could not load type 'System.UriTemplate' from assembly 'System.ServiceModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"

似乎还有一些其他人得到了相同的例外。 https://github.com/Azure/azure-functions-host/issues/3568

我已经使用 .NETCore 3.0 和带有 v2.0 的 AzureFunctions 实现了我的解决方案,并使用了 WindowsAzure.ServiceBus v6.0.0、System.private.ServiceModel 4.6.0 和 System.ServiceModel.Primitives 4.6.0。 据我所知,版本应该没有问题,但目前我不确定。

在链接中有很多解决方法,我已经尝试过但没有结果。在所有这些中,我都更改了文件结构以匹配我的。 (我知道其中一些适用于其他类型的项目等等,但仍然值得一试)。

<Target Name="FixForDotnetWcfIssueBuild" BeforeTargets="PostBuildEvent"> <Copy SourceFiles="$(OutputPath)bin\runtimes\win\lib\netstandard2.0\System.Private.ServiceModel.dll" DestinationFolder="$(OutputPath)bin" /> </Target> 

<Target Name="FixForDotnetWcfIssuePublish" AfterTargets="AfterPublish"> <Copy SourceFiles="$(PublishDir)bin\runtimes\win\lib\netstandard2.0\System.Private.ServiceModel.dll" DestinationFolder="$(PublishDir)bin" /> </Target>

所以在我看来,WindowsAzure.ServiceBus 6.0.0 似乎与 .NETCoreApp v3.0 不兼容。

希望有人知道我不知道的事情并且愿意提供帮助,并且我已经告诉了足够多的人来解决这个难题。

【问题讨论】:

  • 可以显示包的配置吗?

标签: c# azure .net-core azure-functions .net-framework-version


【解决方案1】:

Azure Function 有两个版本。一种基于 .NET Framework,另一种基于 .NET Core。根据您的描述,您似乎使用的是.NET Core 3.0Function v2.0

你的项目使用WindowsAzure.ServiceBus v6.0.0,但是你看过这个Nuget包的说明吗?

https://www.nuget.org/packages/WindowsAzure.ServiceBus/

它基于 .NET 框架。

如果你在错误的技术栈上使用这个包,当然会出现这个异常。

【讨论】:

  • 感谢您的回答我已更改它,我现在可以运行函数应用程序。我仍然不知道如何在本地运行它,但我会以另一种方式对其进行测试。
  • @LasseAndersen 如果我的解决方案对您有帮助,您能否将其标记为问题的答案?它将帮助遇到类似问题的其他人。
猜你喜欢
  • 1970-01-01
  • 2017-10-01
  • 2018-06-02
  • 1970-01-01
  • 2013-03-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多