我有一个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软件包都已更新,还有什么可能?
谢谢!
答案 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或更低版本的软件包/库。 请查看链接以获取更多详细信息:
答案 2 :(得分:2)
答案 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