Не удается скомпилировать проект приложения BizTalk Server. NET 4.7.2 - PullRequest
0 голосов
/ 24 апреля 2020

В моей только что созданной среде BizTalk 2020 Dev, когда я добавляю проект решения BizTalk Server (.btaproj) в решение, в диалоговом окне, где вы задаете имя проекта, отображается селектор платформы. NET и по умолчанию используется версия 4.7.2, как и ожидалось.

Однако, когда проект добавлен в решение, я вижу в свойствах проекта, на который он нацелен. NET 4.6.1. Кто-нибудь видел это? это ошибка или что-то не так с установкой?

Естественно, я изменяю его на версию 4.7.2 как обычный проект BizTalk, и все прекрасно компилируется в Visual Studio.

Но на нашем сервере сборки тот же проект провалился. Мы используем Azure Devops для CICD. На сервере сборки у нас установлена ​​та же версия VS (2019 Enterprise) и установлено BizTalk Server Extention (v3.12.1.0), а также средства msbuild из установки сервера BizTalk.

В журналах я сначала получаю предупреждение:

C: \ Program Files (x86) \ Microsoft Visual Studio \ 2019 \ Enterprise \ MSBuild \ Current \ Bin \ Microsoft .Common.CurrentVersion.targets (2106,5): предупреждение MSB3274: не удалось разрешить первичную ссылку «A.dll», поскольку она построена на основе платформы .NETFramework, Version = v4.7.2. Это более высокая версия, чем целевая на данный момент платформа .NETFramework, Version = v4.6.1. [B.btaproj] *

И далее в журнале btaproj не найдет сборки для включения в пакет .zip.

Приведенное выше сообщение подразумевает, что у меня другая цель версии, но я не знаю.

Теперь странно то, что я могу войти на сервер сборки, клонировать тот же проект и просто скомпилировать его с VS.

Единственный способ заставить сборочный сервер успешно скомпилировать проект (или любой другой проект BizTalk с .btaproj в этом отношении), изменить. окружение.

Я проверил файлы проекта и файлы, отмеченные как Git, и все выглядит нормально с исходными файлами. Флаг очистки я установил для очистки исходников и выходного каталога. Я могу скомпилировать обычный проект BizTalk и приложение. NET с 4.7.2 на сервере сборки, это нормально, только когда я использую проект .btaproj, где он начинает плохо себя вести.

Может кто-нибудь указать, с чего начать искать? .btaproj кажется поначалу подозрительным, но он также может быть изолирован от msbuild на сервере сборки и отличается от компиляции в Visual Studio.

Ответы [ 2 ]

1 голос
/ 28 апреля 2020

Поскольку в проекте приложения BizTalk Server, например, .btaproj, по умолчанию используется целевой moniker 4.6.1, при добавлении в решение вам потребуется вручную изменить версию вручную для ОБА отладки и выпуска.

Не вводите в заблуждение диалогом создания проекта, где по умолчанию используется версия 4.7.2 project dialog

0 голосов
/ 28 апреля 2020

В качестве обходного пути вы можете указать /p:TargetFrameworkVersion=v4.7.2 в столбце Аргументы MSBuild задачи MSBuild.

enter image description here

MSBuild позволяет установить свойства для командной строки с помощью ключа -property (или -p). Эти глобальные значения свойств переопределяют значения свойств, заданные в файле проекта. Это включает свойства среды, но не включает зарезервированные свойства, которые нельзя изменить.

Подробнее см. В этом документе .

...