预编译的Azure函数StorageTableInput绑定不工作

预编译的Azure函数StorageTableInput绑定不工作,azure,azure-functions,azure-webjobs,Azure,Azure Functions,Azure Webjobs,我正在尝试使用Donna Malayeri的“将.NET类库发布为函数应用程序”将Azure函数应用程序转换为预编译版本 我使用的计时器触发器具有使用类型化对象的StorageTable输入绑定。对象继承自“TableEntity”。虽然门户中的版本没有任何问题,但我的预编译版本会引发以下错误: Microsoft.Azure.WebJobs.Host: Error indexing method 'Functions.ScheduleTrigger'. Microsoft.Azure.WebJ

我正在尝试使用Donna Malayeri的“将.NET类库发布为函数应用程序”将Azure函数应用程序转换为预编译版本

我使用的计时器触发器具有使用类型化对象的StorageTable输入绑定。对象继承自“TableEntity”。虽然门户中的版本没有任何问题,但我的预编译版本会引发以下错误:

Microsoft.Azure.WebJobs.Host: Error indexing method 'Functions.ScheduleTrigger'. Microsoft.Azure.WebJobs.Host: GenericArguments[0], 'MyScheduler.Schedule', on 'Microsoft.Azure.WebJobs.Host.Tables.TableExtension+TableToIQueryableConverter`1[TElement]' violates the constraint of type 'TElement'. mscorlib: GenericArguments[0], 'MyScheduler.Schedule', on 'Microsoft.Azure.WebJobs.Host.Tables.TableExtension+TableToIQueryableConverter`1[TElement]' violates the constraint of type parameter 'TElement'.
Azure函数代码如下所示:

using System;
using System.Linq;
using Microsoft.Azure.WebJobs;
using Microsoft.Azure.WebJobs.Host;
using Microsoft.WindowsAzure.Storage.Table;

namespace MyScheduler
{
    public class ScheduleTrigger
    {

        public static void Run(TimerInfo scheduleTimer, Queryable<Schedule> schedulesTable, ICollector<Schedule> scheduleQueueItem, TraceWriter log)
        {
            log.Info($"Start processing at: {DateTime.Now}.");

            // processing code here...

            log.Info($"Finished processing at: {DateTime.Now}.");
        }
    }

    public class Schedule : TableEntity
    {
        public string Name { get; set; }
        public DateTime LastRunAt { get; set; }
        public bool Active { get; set; }
        public string Endpoint { get; set; }
    }
}
{
  "scriptFile": "..\\bin\\MyScheduler.dll",
  "entryPoint": "MyScheduler.ScheduleTrigger.Run",
  "bindings": [
    {
      "name": "scheduleTimer",
      "type": "timerTrigger",
      "direction": "in",
      "schedule": "0 * * * * *"
    },
    {
      "type": "table",
      "name": "schedulesTable",
      "tableName": "schedules",
      "partitionKey": "Schedules",
      "connection": "AzureWebJobsStorage",
      "direction": "in"
    },
    {
      "type": "queue",
      "name": "scheduleQueueItem",
      "queueName": "schedulesqueue",
      "connection": "AzureWebJobsStorage",
      "direction": "out"
    }
  ],
  "disabled": true
}
有几件事:

确保您引用的是Azure存储SDK 7.2.1或更低版本(理想情况下为7.2.1) 文档中记录了预编译函数的最新模型,以及完整的工具/VisualStudio集成。请考虑切换到那个。
您引用的存储SDK的版本是什么?我确实看到了您的其他答案,但由于这是“完全相同的问题”,我实际上没有尝试过。另外。。。答案来自一年多前。。。你会希望这样的事情能在现在解决,很高兴这有帮助。迁移到一个新版本并不是在一个次要的版本发布中就可以完成的,所以这在1.x中不会改变。2.0预览版使用最新版本,我们打算公开一种机制来软化这一限制。