错误:无法加载文件或程序集标准,版本= 2.1.0.0

时间:2019-09-03 23:22:23

标签: azure-functions .net-standard

我有一个AzureFunctions项目,我需要将其升级到.NET标准2.1(从2.0版)。解决方案中的所有其他项目均已加载并正确编译,但是此AzureFunctions项目抛出此错误:

错误System.IO.FileNotFoundException:无法加载文件或程序集“ netstandard,Version = 2.1.0.0,Culture = neutral,PublicKeyToken = cc7b13ffcd2ddd51”。该系统找不到指定的文件。 文件名:“ netstandard,版本= 2.1.0.0,区域性=中性,PublicKeyToken = cc7b13ffcd2ddd51”

我已经验证了所有nuget软件包都已更新,还有什么可能?

谢谢!

6 个答案:

答案 0 :(得分:12)

我有同样的问题。最终,我发现将Azure函数项目属性更改为目标.NET Core 3.1仍将V2上的Azure函数版本保留下来。解决方案是编辑CSPROJ并将AzureFunctionsVersion从v2设置为v3。

答案 1 :(得分:11)

有时,您会收到此错误,因为您引用了针对不兼容.Net标准的库/ Nuget程序包。 示例:如果创建针对.Net Core 2.2的项目,并尝试添加针对.net standard 2.1的库,则将出现相同的错误,因为.Net Core 2.2与.net standard 2.0或更低版本兼容,因此您可以添加针对.Net Standard 2.0或更低版本的软件包/库。 请查看链接以获取更多详细信息:

.Net Core and .Net Standard

.Net Standard Compatiblity Table

答案 2 :(得分:2)

对我来说,需要升级Azure上的功能应用程序配置。 我必须在设置中将运行时设置为3。 参见图片。enter image description here

答案 3 :(得分:1)

我尝试了几种方法,最终创建了一个新项目,然后将项目从旧项目中移出,直到再次出现错误,然后我删除了nuget包“ Microsoft.NET.Sdk.Functions”,发现该错误已解决。 ”。

答案 4 :(得分:0)

我遇到同样的错误。

我认为它与Microsoft.NET.Sdk.Functions软件包无关,因为您需要该软件包(特别是1.0.30-beta2,以便尝试预览.net core 3)。

我认为这与Microsoft.Extensions.Logging有关。如果创建一个新的Azure功能项目,您将看到Azure.WebJobs.Extensions.Storage在其中使用日志记录包的v2.1。但是,如果您的项目本身使用最新的日志记录,那么它也会使用v3.0。 但是在某些地方,我认为它并不是真正想要的,并且在尝试找到v2.1时无法成功。

如果您的函数采用ILogger作为参数,它将失败得更加具体,显示无法找到该类型。我认为这全是因为最终它只是一个预览,我现在似乎也无法使其正常工作。

答案 5 :(得分:0)

我的项目文件目标netcoreapp3.1 Microsoft.NET.Sdk.Functions 3.0.3基于模板 给出了类似的错误。 删除azure-functions-core-tools并安装其他版本对我来说解决了这个问题。

npm uninstall azure-functions-core-tools
npm install azure-functions-core-tools@3 --unsafe-perm true