Я использую 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?