У меня есть библиотека .NET-оболочки, основанная на .NET Framework v4.6.1, которая вызывает UWP OCR API. Он содержит только один класс с одной функцией, код ниже
public static async Task<string> ExtractText(Stream stream, string language)
{
using (IRandomAccessStream uwpStream = new InMemoryRandomAccessStream())
{
byte[] input = new byte[stream.Length];
stream.Read(input, 0, input.Length);
uwpStream.AsStreamForWrite().Write(input, 0, input.Length);
uwpStream.AsStreamForWrite().Flush();
uwpStream.Seek(0);
BitmapDecoder decoder = await BitmapDecoder.CreateAsync(uwpStream);
SoftwareBitmap bitmap = await decoder.GetSoftwareBitmapAsync();
OcrEngine engine = OcrEngine.TryCreateFromLanguage(new
Language(language));
uwpStream.Dispose();
if (engine != null)
{
OcrResult result = await engine.RecognizeAsync(bitmap);
return result.Text;
}
else
{
throw new NullReferenceException("Language is not supported");
}
}
}
Проект имеет ссылки на следующие библиотеки UWP: Windows.WinMD, Windows.Foundation.FoundationContract.winmd, Windows.Foundation.UniversalApiContract.winmd. Я нашел их местоположение в браузере объектов в Visual Studio, скопировал их из исходного местоположения в подпапку в моем проекте и затем связал их.
Мое приложение работает нормально на моем локальном компьютере, и UWP OCR Engine работает нормально.
Затем я развертываю свою библиотеку и приложение, которое ее использует, на моей виртуальной машине, на которой установлен Windows Server 2012 R2 с установленным .NET Framework и установленным Windows 10 SDK.
Моя программа не работает во время выполнения, за исключением:
Не удалось найти тип среды выполнения Windows "Windows.Graphics.Imaging.SoftwareBitmap"
Чтобы решить эту проблему, я попытался переустановить Windows 10 SDK на своем виртуальном сервере и проверил, совпадают ли версии с точными версиями на моей машине для разработки.
Похоже, что некоторые из библиотек .winmd не загружаются во время выполнения.
Я ожидаю, что моя программа будет успешно запущена на другом компьютере в режиме выпуска.
Работает на разработку машины нормально.
Тем не менее, я новичок в UWP, поэтому, возможно, исходной информации недостаточно для решения проблемы, но я готов предоставить больше.
Буду признателен за любую помощь