命名空间“Microsoft.Azure.WebJobs”中不存在类型或命名空间名称“TableAttribute”

Posted

技术标签:

【中文标题】命名空间“Microsoft.Azure.WebJobs”中不存在类型或命名空间名称“TableAttribute”【英文标题】:The type or namespace name 'TableAttribute' does not exist in the namespace 'Microsoft.Azure.WebJobs' 【发布时间】:2022-01-20 16:32:04 【问题描述】:

我按照https://github.com/czar3985/AzureFunctionsAndTableStorage 上的示例进行操作,但我不断收到编译错误。针对 .net 6.0 编译

.cs

using Microsoft.Azure.WebJobs;
using Microsoft.Azure.WebJobs.Extensions.Http;
//using Azure.Data.Tables;
using Microsoft.Azure.Cosmos.Table;
using Microsoft.AspNetCore.Http;
using Microsoft.Extensions.Logging;
using Microsoft.Azure.WebJobs.Extensions.Storage;

.csproj

  <ItemGroup>
    <PackageReference Include="Azure.Data.Tables" Version="12.3.0" />
    <PackageReference Include="Microsoft.Azure.Cosmos" Version="3.23.0" />
    <PackageReference Include="Microsoft.Azure.Cosmos.Table" Version="1.0.8" />
    <PackageReference Include="Microsoft.Azure.WebJobs" Version="3.0.30" />
    <PackageReference Include="Microsoft.Azure.WebJobs.Extensions.Storage" Version="5.0.0" />
    <PackageReference Include="Microsoft.NET.Sdk.Functions" Version="4.0.1" />
  </ItemGroup>

【问题讨论】:

您将旧版本的 azure 软件包与较新版本混合使用,如果它有效,我会感到惊讶。在此处查看它们之间的差异,github.com/Azure/azure-sdk-for-net/blob/main/sdk/tables/… 也许开始一个新的干净项目将是获取新版本的所有包参考的快速方法。 【参考方案1】:

TableAttribute 需要 System.ComponentModel.DataAnnotations.Schema 命名空间。

默认情况下,它是在创建 .Net 6 Azure 函数时包含的。

TableAttribute 属于 System.ComponentModel.Annotations 程序集,它是 .NET Standard 的 is not part。

如果你在项目中没有找到上面的命名空间,你需要将它作为一个包安装:

Install-Package System.ComponentModel.Annotations -Version 4.6.0

并将其包含在 using 命名空间中,如下所示:

【讨论】:

如果回答有帮助,请Accept it as an Answer,以便其他遇到相同问题的人可以找到此解决方案并解决他们的问题!

以上是关于命名空间“Microsoft.Azure.WebJobs”中不存在类型或命名空间名称“TableAttribute”的主要内容,如果未能解决你的问题,请参考以下文章

命名空间“System.Configuration”中不存在类型或命名空间名称“ConfigurationManager”

Tcl学习之--命名空间

Tcl学习之--命名空间

命名空间 作用域

*args **kwargs函数的命名空间。

命名空间