Я надеюсь, что кое-что упустил, но у меня проблема, для которой я не могу найти счастливую работу.Фунткоиды должны быть в GAC?
Я использую VSTS для своего решения CI. Каждая фиксация, приложения BizTalk извлекаются на выделенный сервер сборки, скомпилированы и выполняются модульные тесты.
Я не хочу, чтобы какая-либо из моих сборщиков решений BizTalk находила свой путь в GAC на сервере сборки, потому что Visual Studio будет компилироваться с ними, а не с проектами.
Проблема возникает, когда сборка агент пытается построить решение, которое содержит проект пользовательских functoids, я получаю следующее сообщение об ошибке:
Functoid not found: guid (1d5de785-c639-4040-9704-c65a11127115) with functoid id (6003). Check if the assembly implementing this functoid is present in D:\Program Files (x86)\Microsoft BizTalk Server 2013 R2\Developer Tools\Mapper Extensions. If the functoid does not expose any inline code, make sure its assembly is made available in the GAC also
Таким образом, functoid сборка должна быть в GAC? Проблема в том, что ссылается на сборку common.components, что означает, что также нужно будет GAC'd, что возвращает меня обратно туда, где я не хочу! Это проблема, поскольку в следующий раз, когда агент сборки попытается создать проект со ссылкой на common.components, он будет использовать «старую» версию, которая, как правило, происходит в GAC, скорее, чем последняя версия, просто вытащенная из репо и сидел рядом с зависимым проектом в том же решении.
Если кто-то другой затронул ту же проблему, я хотел бы услышать от вас.
Я собираюсь сказать, что правильное решение обновить GAC, который является, где все связанные сборки BizTalk приложения должны всегда, вот как это работает. «кажется, что проекты BizTalk будут использовать эти, а не проектные ссылки», так как .Net решает сборки. Ничто не связано с BizTalk. –
Спасибо за ваш ответ @ Johns-305, я согласен, что разрешение сборки не связано с BizTalk (https://msdn.microsoft.com/en-us/library/yx7xezcf(v=vs.110).aspx).Тем не менее, функционалы, которые должны быть в GAC, являются причиной этой проблемы. Никаких пользовательских functoids, никаких проблем! Если common.components находятся в GAC, тогда «старая» версия будет ссылаться на сервере сборки каждый раз, когда commit запускает автоматическую сборку. Агент сборки получит последний код для common.components из удаленного репо, но зависимые проекты будут построены с использованием любой версии, находящейся в GAC. –
Извините, у меня все еще не проблема. Сборка должна обновить все необходимое. Значит, не должно быть «старых» версий чего-либо в GAC. Они также должны обновляться во время сборки, либо естественно, либо как конкретный шаг сборки. –