升级 Azure Functions SDK 时出现 ExtensionsMetadataGenerator 错误
ExtensionsMetadataGenerator error when upgrading Azure Functions SDK
我将我的 azure 函数 sdk 从 1.0.14 升级到 1.0.28,我得到了这个构建错误:
The ExtensionsMetadataGenerator package was not imported correctly.
我找不到任何文档或解决方法。
根据前几天发布的1.0.28
函数sdk,可能有一些bug。
解决方法:
手动添加
Microsoft.Azure.WebJobs.Script.ExtensionsMetadataGenerator 将 nuget 包添加到您的项目中,它将运行良好。
开始使用 Visual Studio Function App 模板时出现此错误,该模板使用 Microsoft.NET.Sdk.Functions 1.0.31 并且是 .NET Core 2.0 应用程序。
Nuget 程序包管理器想要将 Microsoft.NET.Sdk.Functions 程序包更新到版本 3.0.2,它试图这样做,但应用程序仍然是 .NET Core 2,您收到错误消息:
The ExtensionsMetadataGenerator package was not imported correctly.
要解决此问题,请将应用程序更新到 .NET Core 3:
确保将 Microsoft.NET.Sdk.Functions NuGet 程序包更新到支持您应用的 .NET 版本的最新版本。
例如,我有一个 Web 应用程序 运行 .NET 2.1,我不得不将 NuGet 版本回滚到 1.0.36,而下一版本 (3.0) 只能在 .NET 3 及更高版本上运行。这样做之后,Microsoft.Azure.WebJobs.Script.ExtensionsMetadataGenerator 根本不需要 NuGet,我所有的错误都消失了。
我正在使用 microsoft.net.sdk.functions 1.0.38 并看到相同的消息,但在我的情况下,这是构建警告而不是错误。
我安装了建议的 NuGet 包和所需的版本。然而,我随后收到了 3 个警告:
The ExtensionsMetadataGenerator package was not imported correctly. Are you missing 'C:\Users\me\.nuget\packages\microsoft.azure.webjobs.script.extensionsmetadatagenerator.2.0\build\Microsoft.Azure.WebJobs.Script.ExtensionsMetadataGenerator.targets' or 'C:\Users\me\.nuget\packages\microsoft.azure.webjobs.script.extensionsmetadatagenerator.2.0\build\Microsoft.Azure.WebJobs.Script.ExtensionsMetadataGenerator.props'? "C:\Users\me\.nuget\packages\microsoft.azure.webjobs.script.extensionsmetadatagenerator.2.0\build\Microsoft.Azure.WebJobs.Script.ExtensionsMetadataGenerator.props" cannot be imported again. It was already imported at "C:\Users\me\.nuget\packages\microsoft.net.sdk.functions.0.38\build\Microsoft.NET.Sdk.Functions.props (56,3)". This is most likely a build authoring error. This subsequent import will be ignored. [D:\myproject.Web\myproject.Web.AzureFunctions\myproject.Web.AzureFunctions.csproj] "C:\Users\me\.nuget\packages\microsoft.azure.webjobs.script.extensionsmetadatagenerator.2.0\build\Microsoft.Azure.WebJobs.Script.ExtensionsMetadataGenerator.targets" cannot be imported again. It was already imported at "C:\Users\me\.nuget\packages\microsoft.net.sdk.functions.0.38\build\Microsoft.NET.Sdk.Functions.targets (64,3)". This is most likely a build authoring error. This subsequent import will be ignored. [D:\myproject.Web\myproject.Web.AzureFunctions\myproject.Web.AzureFunctions.csproj]
更糟糕的是,我的项目无法构建 - 它在构建时冻结,无法取消。取消的唯一方法是提升 PowerShell:
stop-process -name "dotnet"
为了解决这个问题,我尝试卸载 NuGet 包,但这还不够,因为如果它在系统上,它似乎仍在使用(即使项目没有引用它?!?)。
有必要从包存储中实际删除包,即在
C:\Users\me\.nuget\packages\microsoft.azure.webjobs.script.extensionsmetadatagenerator
或者另一种方法是注释掉以下行:
<GenerateFunctionsExtensionsMetadata SourcePath="$(_FunctionsExtensionsDir)" OutputPath="$(_FunctionsExtensionsDir)"/>
发件人:
C:\Users\me\.nuget\packages\microsoft.azure.webjobs.script.extensionsmetadatagenerator.2.0\build\Microsoft.Azure.WebJobs.Script.ExtensionsMetadataGenerator.targets
我不知道这样做是否安全,但它消除了警告消息。相反,我选择只删除 NuGet 包并接受原始警告。
看起来 microsoft.net.sdk.functions 包真是一团糟。
我将我的 azure 函数 sdk 从 1.0.14 升级到 1.0.28,我得到了这个构建错误:
The ExtensionsMetadataGenerator package was not imported correctly.
我找不到任何文档或解决方法。
根据前几天发布的1.0.28
函数sdk,可能有一些bug。
解决方法:
手动添加 Microsoft.Azure.WebJobs.Script.ExtensionsMetadataGenerator 将 nuget 包添加到您的项目中,它将运行良好。
开始使用 Visual Studio Function App 模板时出现此错误,该模板使用 Microsoft.NET.Sdk.Functions 1.0.31 并且是 .NET Core 2.0 应用程序。
Nuget 程序包管理器想要将 Microsoft.NET.Sdk.Functions 程序包更新到版本 3.0.2,它试图这样做,但应用程序仍然是 .NET Core 2,您收到错误消息:
The ExtensionsMetadataGenerator package was not imported correctly.
要解决此问题,请将应用程序更新到 .NET Core 3:
确保将 Microsoft.NET.Sdk.Functions NuGet 程序包更新到支持您应用的 .NET 版本的最新版本。
例如,我有一个 Web 应用程序 运行 .NET 2.1,我不得不将 NuGet 版本回滚到 1.0.36,而下一版本 (3.0) 只能在 .NET 3 及更高版本上运行。这样做之后,Microsoft.Azure.WebJobs.Script.ExtensionsMetadataGenerator 根本不需要 NuGet,我所有的错误都消失了。
我正在使用 microsoft.net.sdk.functions 1.0.38 并看到相同的消息,但在我的情况下,这是构建警告而不是错误。
我安装了建议的 NuGet 包和所需的版本。然而,我随后收到了 3 个警告:
The ExtensionsMetadataGenerator package was not imported correctly. Are you missing 'C:\Users\me\.nuget\packages\microsoft.azure.webjobs.script.extensionsmetadatagenerator.2.0\build\Microsoft.Azure.WebJobs.Script.ExtensionsMetadataGenerator.targets' or 'C:\Users\me\.nuget\packages\microsoft.azure.webjobs.script.extensionsmetadatagenerator.2.0\build\Microsoft.Azure.WebJobs.Script.ExtensionsMetadataGenerator.props'? "C:\Users\me\.nuget\packages\microsoft.azure.webjobs.script.extensionsmetadatagenerator.2.0\build\Microsoft.Azure.WebJobs.Script.ExtensionsMetadataGenerator.props" cannot be imported again. It was already imported at "C:\Users\me\.nuget\packages\microsoft.net.sdk.functions.0.38\build\Microsoft.NET.Sdk.Functions.props (56,3)". This is most likely a build authoring error. This subsequent import will be ignored. [D:\myproject.Web\myproject.Web.AzureFunctions\myproject.Web.AzureFunctions.csproj] "C:\Users\me\.nuget\packages\microsoft.azure.webjobs.script.extensionsmetadatagenerator.2.0\build\Microsoft.Azure.WebJobs.Script.ExtensionsMetadataGenerator.targets" cannot be imported again. It was already imported at "C:\Users\me\.nuget\packages\microsoft.net.sdk.functions.0.38\build\Microsoft.NET.Sdk.Functions.targets (64,3)". This is most likely a build authoring error. This subsequent import will be ignored. [D:\myproject.Web\myproject.Web.AzureFunctions\myproject.Web.AzureFunctions.csproj]
更糟糕的是,我的项目无法构建 - 它在构建时冻结,无法取消。取消的唯一方法是提升 PowerShell:
stop-process -name "dotnet"
为了解决这个问题,我尝试卸载 NuGet 包,但这还不够,因为如果它在系统上,它似乎仍在使用(即使项目没有引用它?!?)。
有必要从包存储中实际删除包,即在
C:\Users\me\.nuget\packages\microsoft.azure.webjobs.script.extensionsmetadatagenerator
或者另一种方法是注释掉以下行:
<GenerateFunctionsExtensionsMetadata SourcePath="$(_FunctionsExtensionsDir)" OutputPath="$(_FunctionsExtensionsDir)"/>
发件人:
C:\Users\me\.nuget\packages\microsoft.azure.webjobs.script.extensionsmetadatagenerator.2.0\build\Microsoft.Azure.WebJobs.Script.ExtensionsMetadataGenerator.targets
我不知道这样做是否安全,但它消除了警告消息。相反,我选择只删除 NuGet 包并接受原始警告。
看起来 microsoft.net.sdk.functions 包真是一团糟。