Проект приложения BizTalk Server не может быть скомпилирован с .NET 4.7.2

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

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

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

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

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

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, если на то пошло) - это изменить.NET на 4.6.1 (как для.btproj, так и.btaproj), и все это хорошо компилируется и развертывается в среду BizTalk.

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

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

2 ответа

Решение

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

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

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

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

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

Другие вопросы по тегам