Обходной путь для устранения ошибки, описанной ниже, заключался в эффективном удалении функций, предоставляемых семью стандартными функтоидами базы данных BizTalk Server 2016. Желание состоит в том, чтобы иметь возможность этого не делать.
При создании проекта мы получаем эту ошибку:
Задача «MapperCompiler» неожиданно завершилась неудачей.
System.ApplicationException: Невозможно загрузить оболочку: C: \ Program Files (x86) \ Microsoft BizTalk Server 2016 \ Средства разработчика \ Расширения Mapper \ Microsoft.BizTalk.CrossReferencingFunctoids.dll. ---> System.IO.FileNotFoundException: компилятор сопоставления: невозможно загрузить сборку из файла или его частичного имени C: \ Program Files (x86) \ Microsoft BizTalk Server 2016 \ Инструменты разработчика \ Расширения Mapper \ Microsoft.BizTalk.CrossReferencingFunctoids.dll
в Microsoft.BizTalk.Mapper.OM.FunctoidManager.AddWrapper (ссылка на строку)
в Microsoft.BizTalk.Mapper.OM.FunctoidManager.LoadWrappers (ссылки на String [])
--- Конец внутренней трассировки стека исключений ---
в Microsoft.VisualStudio.BizTalkProject.Compiler.MapCompiler.Compile (BizTalkBuildSnapshot buildSnapshot, IEnumerable 1 mapFilesToCompile, IEnumerable
1 schemaFiles, список 1& generatedCodeFiles, List
1 & xsltFiles)
в Microsoft.VisualStudio.BizTalkProject.BuildTasks.MapperCompiler.Execute ()
в Microsoft.Build.BackEnd.TaskExecutionHost.Microsoft.Build.BackEnd.ITaskExecutionHost.Execute ()
в Microsoft.Build.BackEnd.TaskBuilder.d__26.MoveNext () {имя моего проекта}
Между тем, при попытке открыть существующую карту или создать новую карту мы получаем эту ошибку:
Изображение местоположения сборки (показывает ее размер и дату публикации MS):
Эта сборка была стандартным компонентом функтоидов отображающей базы данных BizTalk Server по крайней мере с версии 2006 R2. Функтоиды описаны в документации MS для BTS:
Функтоиды выглядят так на поверхности дизайна карты в Visual Studio:
Эти таблицы BizTalkMgmtDb являются целями функтоидов перекрестных ссылок:
К вашему сведению здесь - самая старая запись, которую я смог найти для этого точного симптома. Решений для этого поста опубликовано не было:
Вот наш ужасный обходной путь: удалить Microsoft.BizTalk.CrossReferencingFunctoids.dll
Эффекты удаления сборки из ее местоположения в ...
C:\Program Files (x86)\Microsoft BizTalk Server 2016\Developer Tools\Mapper Extensions
... являются двойными:
- Ошибки (при создании проекта с картами и при попытке создать новую карту или отобразить существующую карту) исчезают.
- Полезность перекрестных ссылок на функтоиды недоступна. Эти семь функтоидов по-прежнему появляются в наборе инструментов на поверхности конструирования отображения, но если вы попытаетесь использовать один из них, вы получите это сообщение (функтоиды все еще появляются в наборе инструментов - предположительно потому, что сборка все еще находится в GAC):
ПРИМЕЧАНИЕ. К вашему сведению, я не могу получить ни одного из этих симптомов на своем ПК с Windows 10, даже после того, как приложу все усилия, чтобы настроить его в соответствии с серверной средой, выполнив следующие действия:
- Установлено BTS 2016 Накопительное обновление 5
- Установлен тот же .NET Framework 4.7.2 (он же 4.7.03062), который используется на сервере
Серверная среда проблемы:
- BizTalk Server 2016, включая накопительное обновление 5
- BizTalk, установленный в Windows Server 2012 R2 Datacenter (x64) - в частности, версия 6.3.9600, сборка 9600. На сервере установлены исправления
- Visual Studio 2015 (версия, необходимая для работы с BTS 2016)
- База данных SQL Server 2016 SP2 (сборка 1.3.0.5161.0) находится на отдельном компьютере