Project Oxford & Speech Recognition — эта сборка была скомпилирована для другого процессора

Я добавил следующий файл project.json в свою функцию Azure.

{
  "frameworks": {
    "net46":{
      "dependencies": {
        "Microsoft.ProjectOxford.SpeechRecognition-x86": "1.0.0.1"
      }
    }
   }
}

Я использую простой триггер Http и имею следующий код в функции:

using System.Net;
using Microsoft.CognitiveServices.SpeechRecognition;

public static async Task<HttpResponseMessage> Run(HttpRequestMessage req, TraceWriter log) {
log.Info($"C# HTTP trigger function processed a request.");

        var dataClient = SpeechRecognitionServiceFactory.CreateDataClient(
                    SpeechRecognitionMode.LongDictation,
                    "en-US",
                    "my sub key");

        var resp = new HttpResponseMessage(HttpStatusCode.OK);
        return resp;
}

На данный момент я просто пытаюсь создать экземпляр DataClient. Функция компилируется нормально, но при выполнении выдает эту ошибку.

Функции.ProcessReportAudio. mscorlib: Исключение было вызвано целью вызова. mscorlib: не удалось загрузить файл или сборку «SpeechClient, версия = 0.0.0.0, культура = нейтральная, PublicKeyToken = null». Эта сборка была скомпилирована для другого процессора.

Я пробовал версию пакета nuget для x86 и x64 и получаю ту же ошибку.

В конечном счете, я буду обрабатывать речевые wav-файлы, которые были загружены в хранилище Azure, чтобы получить диктовку, но сейчас это не так.


person Jeff Brand    schedule 03.10.2016    source источник


Ответы (1)


Джефф, я предполагаю, что вы начали с x64 (поскольку конфигурация функционального приложения по умолчанию — x86).

Перезапускали ли вы приложение-функцию после перехода с одной архитектуры на другую?

Можете ли вы попробовать, поскольку первоначальная ошибка привязки потенциально может быть кэширована, и, поскольку сборки имеют одно и то же имя, это предотвратит попытку среды выполнения загрузить ссылку после вашего изменения.

person Fabio Cavalcante    schedule 03.10.2016