即使启用了自动绑定,也找不到程序集
Posted
技术标签:
【中文标题】即使启用了自动绑定,也找不到程序集【英文标题】:Assembly not found even when automatic binding is enabled 【发布时间】:2021-09-09 11:58:30 【问题描述】:我有一个失败的 Azure 函数并出现找不到程序集错误
System.ComponentModel.Annotations, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'
我的 Azure Function 和包含代码的类库中都正确引用了此包
我在两个项目文件中都有这个
<PropertyGroup>
<AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
<GenerateBindingRedirectsOutputType>true</GenerateBindingRedirectsOutputType>
</PropertyGroup>
我该如何解决这个令人沮丧的问题?
我已经引用了 System.ComponentModel.Annotations 包
似乎没有太多关于如何在 Azure 函数中进行程序集重定向
我在 .NET Core 3.1 系统中使用 Azure Functions V3
保罗
【问题讨论】:
【参考方案1】:可能是因为 nugget 的版本与生成的库的版本不匹配。您可以尝试以下方法:
1.从包管理控制台做:
Get-Project –All | Add-BindingRedirect
在配置文件中重新生成assemblyBinding
配置
2.如果没有修复,则手动添加绑定重定向。 根据您需要指定的版本进行更改
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.ComponentModel.Annotations"
publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="4.1.0.0" newVersion="4.0.0.0"/>
</dependentAssembly>
oldVersion:指定最初请求的程序集版本
newVersion:指定要使用的程序集版本
【讨论】:
谢谢,但它的 XML?我以为 .NET Core 3.1 使用 json 配置? 绑定重定向是 .NET Framework 的概念,.NET Standard 和 .NET Core 上没有绑定重定向。如果需要绑定重定向,则必须将它们添加到 .NET Framework 应用程序(或库)使用 .NET Standard 库。docs.microsoft.com/en-us/dotnet/framework/configure-apps/…以上是关于即使启用了自动绑定,也找不到程序集的主要内容,如果未能解决你的问题,请参考以下文章
c#vs2008 自定义类加了namespace和using 也找不到为啥
即使它在 pyodbc.dataSources() 中列出,也找不到驱动程序
Powershell - 在应用程序配置文件中找不到程序集绑定重定向
命令行应用程序中的 asp.net 4.0 到 excel 2010 不起作用 - 即使在驱动程序安装后也找不到驱动程序