Запустив на VSTS ядро ​​asp.net sln, я получил: Ошибка MSB4018: Неожиданный сбой задачи TransformWebConfig

Я пытаюсь создать определение сборки для основного приложения asp.net. Мой проект компилируется в Visual Studio, а также в MSBuild. Когда я пытаюсь запустить решение в Azure для компиляции, оно не отображает следующее сообщение:

C:\Program Files\dotnet\sdk\2.2.105\Sdks\Microsoft.NET.Sdk.Publish\build\netstandard1.0\TransformTargets\Microsoft.NET.Sdk.Publish.TransformFiles.targets(49,5): Error MSB4018: The "TransformWebConfig" task failed unexpectedly.
System.Exception: In process hosting is not supported for AspNetCoreModule. Change the AspNetCoreModule to atleast AspNetCoreModuleV2.
   at Microsoft.NET.Sdk.Publish.Tasks.WebConfigTransform.TransformAspNetCore(XElement aspNetCoreElement, String appName, Boolean configureForAzure, Boolean useAppHost, String extension, String aspNetCoreModuleName, String aspNetCoreHostingModel)
   at Microsoft.NET.Sdk.Publish.Tasks.WebConfigTransform.Transform(XDocument webConfig, String appName, Boolean configureForAzure, Boolean useAppHost, String extension, String aspNetCoreModuleName, String aspNetCoreHostingModel, String environmentName)
   at Microsoft.NET.Sdk.Publish.Tasks.TransformWebConfig.Execute()
   at Microsoft.Build.BackEnd.TaskExecutionHost.Microsoft.Build.BackEnd.ITaskExecutionHost.Execute()
   at Microsoft.Build.BackEnd.TaskBuilder.<ExecuteInstantiatedTask>d__26.MoveNext()
Process 'msbuild.exe' exited with code '1'.

Странно то, что в настоящее время я установил на свой компьютер SDK 2.2.300 с Runtime 2.2.5, но когда я запускаю определение сборки в VSTS, кажется, что он использует SDK 2.2.105. Моя первоначальная мысль заключалась в том, что у агента VSTS была неправильная версия, и он работал с 2.2.105. После запуска собственного агента ошибка такая же.

Увидев в Интернете подробную информацию об агентах VSTS, я обнаружил, что самая высокая зависимость .NetCore, которую они установили, — это SDK 2.2.105. Заходя в детали агента, вы можете прочитать

.NET Core
The following runtimes and SDKs are installed:

Environment:

PATH: contains location of dotnet.exe
SDK:

2.2.105 C:\Program Files\dotnet\sdk\2.2.105
2.2.104 C:\Program Files\dotnet\sdk\2.2.104
2.2.103 C:\Program Files\dotnet\sdk\2.2.103
2.2.102 C:\Program Files\dotnet\sdk\2.2.102

Я пытался устранить неполадки следующим образом:

  1. Подождите, пока Microsoft обновит свои онлайн-агенты
  2. Создайте локальный агент (самостоятельно размещенный агент), работающий на вашем локальном хосте, где у вас установлены все зависимости.
  3. попробуйте добавить шаг, который устанавливает SDK как часть задач агента (см. изображение ниже), но, к сожалению, я не смог заставить его работать

Какие-нибудь мысли?

введите здесь описание изображения


person Zinov    schedule 11.06.2019    source источник
comment
У вас должно быть изначально что-то не так. ASP.NET Core 2.2 и более поздние версии вообще не поддерживают web.config. Почему вы настаиваете на использовании web.config в ASP.NET Core 2.2+?   -  person Eriawan Kusumawardhono    schedule 11.06.2019
comment
у меня нет вебконфигов   -  person Zinov    schedule 11.06.2019
comment
Ok. Глядя на ошибку сборки, у вас может быть неправильный .NET TFM. Вы уверены, что все ваши проекты имеют правильный TFM .NET Core 2.2 SDK в решении? И вы должны сначала добавить задачу установки инструмента dotnet, прежде чем выполнять сборку.   -  person Eriawan Kusumawardhono    schedule 11.06.2019
comment
Этот цветовой контраст сообщения об ошибке для меня неразборчив. Он также неразборчив для поисковых систем, а это означает, что любой, кто ищет термины в этом сообщении об ошибке, не найдет этот вопрос. Пожалуйста, воспроизведите весь текст, относящийся к вашему вопросу, в текстовой форме, а не в виде изображений.   -  person spender    schedule 11.06.2019
comment
@spender, когда вы щелкнете по нему, у вас должно быть хорошее разрешение для изображения.   -  person Zinov    schedule 11.06.2019
comment
@zinov Это не решает проблему поисковой системы. Кроме того, некоторые люди дальтоники и плохо читают темно-красный текст на черном фоне.   -  person Daniel Mann    schedule 11.06.2019
comment
@Zinov SO — это общее хранилище знаний. Он содержится в хорошем состоянии и должен быть легко доступен для поиска. Люди вносят информацию не только потому, что она полезна одному человеку, но и потому, что она может быть полезна другим. Вот почему я прошу вас воспроизвести всю информацию в текстовом виде. Для поисковых систем. Кроме того, мои глаза определенно не так хороши, как ваши. Я буквально не могу прочитать ваше сообщение об ошибке, независимо от его размера.   -  person spender    schedule 11.06.2019
comment
@spender, хороший вопрос, спасибо за ваши комментарии о поисковой системе, я только что прошел ее, извините, я только что обновил вопрос с исходным текстом   -  person Zinov    schedule 11.06.2019


Ответы (2)


Если вы не хотите использовать внутрипроцессный хостинг, удалите элемент «AspNetCoreHostingModel» из вашего .csproj:

   <PropertyGroup>
     <TargetFramework>netcoreapp2.1</TargetFramework>
     <AspNetCoreHostingModel>InProcess</AspNetCoreHostingModel>
   </PropertyGroup>
person Murray    schedule 23.07.2019

Как видно из образов виртуальных машин Azure Pipelines для CI/CD, размещенных в Microsoft, самая старшая версия .NET Core, которая была установлена ​​в размещенном агенте, — SDK 2.2.105 со средой выполнения 2.2.3. Но версия, которую вы установили для сборки проекта, — это .NET Core SDK 2.2.300 со средой выполнения 2.2.5. Вот почему вы получили это сообщение об ошибке.

Вы можете использовать задачу для установки соответствующей версии для поддержки этой сборки. Сначала добавьте расширение .NET Core Global Tool Installer и используйте задачу dotnet version 2.*(preview) для установки .NET Core SDK 2.2.300 с Runtime 2.2.5.

person Merlin Liang - MSFT    schedule 18.06.2019