Загрузка сторонних dll в функции Azure - PullRequest
1 голос
/ 20 марта 2019

Я использую icu.net в функциях Azure со средой выполнения 2.1. При сборке icu dll (icuin59.dll, icuio59.dll, icutest59.dll, icutu59.dll, icuuc59.dll и icudt59.dll) копируются в папку ../netcoreapp2.1/lib/win-x64, а также в папку ../netcoreapp2.1/bin/runtimes/win7-x64/native. icu.net.dll также копируется в ../netcoreapp2.1/bin.

Я работаю локально в Windows 10.

Когда моя функция выполняется, я получаю:

[20/03/2019 16:09:14] Executed 'AnalyzeVocabulary' (Failed, Id=cb768548-dd06-4f95-b889-af244af716d1)
[20/03/2019 16:09:14] System.Private.CoreLib: Exception while executing function: AnalyzeVocabulary. icu.net: Can't load ICU library (version 0).
[20/03/2019 16:09:14] 926e7209782c408984ad827cc2744b2d: Function 'AnalyzeVocabulary (Activity)' failed with an error. Reason: System.IO.FileLoadException: Can't load ICU library (version 0)
[20/03/2019 16:09:14] File name: 'icuuc'
[20/03/2019 16:09:14]    at Icu.NativeMethods.LoadIcuLibrary(String libraryName)
[20/03/2019 16:09:14]    at Icu.NativeMethods.get_IcuCommonLibHandle()
[20/03/2019 16:09:14]    at Icu.NativeMethods.uloc_canonicalize(String localeID, IntPtr name, Int32 nameCapacity, ErrorCode& err)
[20/03/2019 16:09:14]    at Icu.Locale.<>c__DisplayClass44_0`1.<GetString>b__0(IntPtr ptr, Int32 length)
[20/03/2019 16:09:14]    at Icu.NativeMethods.GetString(Func`3 lambda, Boolean isUnicodeString, Int32 initialLength)
[20/03/2019 16:09:14]    at Icu.Locale.GetString[T](GetStringMethod`1 method, T localeId)
[20/03/2019 16:09:14]    at Icu.Locale.Canonicalize(String localeID)
[20/03/2019 16:09:14]    at Icu.Locale.op_Implicit(String localeId)
[20/03/2019 16:09:14]    at DigitalLinguistics.TextAnalytics.TextSegApiTokenizer.TextTokenizer.SegmentSentences(String sentence) in E:\DigitalLinguistics\Dev\ServerlessSentinel\DigitalLinguistics.TextAnalytics\TextTokenizer.cs:line 70
[20/03/2019 16:09:14]    at DigitalLinguistics.TextAnalytics.TextSegApiTokenizer.TextTokenizer.Tokenize(String sentence, String id) in E:\DigitalLinguistics\Dev\ServerlessSentinel\DigitalLinguistics.TextAnalytics\TextTokenizer.cs:line 82
[20/03/2019 16:09:14]    at DigitalLinguistics.TextAnalytics.DataStructures.Sentence.LineParse(String text, String id, TokenizerOptions tokenOpts) in E:\DigitalLinguistics\Dev\ServerlessSentinel\DigitalLinguistics.TextAnalytics\Sentence.cs:line 92

ПРИМЕЧАНИЕ Я успешно запустил их из консольного приложения сетевого ядра, поэтому я предполагаю, что библиотеки просто не в нужной папке.

Есть предложения о том, где должны быть библиотеки и как их настроить, чтобы они были развернуты и опубликованы там как часть моей сборки с использованием VS 2017?

1 Ответ

1 голос
/ 20 марта 2019

Мне удалось выяснить из исходного кода в GitHub, что местоположение должно быть ../netcoreapp2.1/bin/lib.

...