VSTS не удается создать действительно простое приложение ASP.NET Core

Следующее так просто, и все же это терпит неудачу. В чем дело?

  • Я создаю новое базовое веб-приложение ASP.NET (.NET Framework 4.6.2) в Visual Studio 2017.

  • Я не делаю никаких изменений в шаблон по умолчанию и помещаю его в VSTS.

  • Я создаю новое определение сборки в VSTS с помощью следующих двух шагов:

    1. NuGet Restore
    2. Visual Studio Build
  • Я обновляю шаг NuGet для использования версии 4.0.0

  • Я обновляю определение для использования агента Hosted VS2017.

  • Я оставляю шаг Build, используя VS2017 со стандартными аргументами MSBuild:

/p:DeployOnBuild=true /p:WebPublishMethod=Package /p:PackageAsSingleFile=true /p:SkipInvalidConfigurations=true /p:PackageLocation="$(build.artifactstagingdirectory)\\".

В предыдущих версиях это создавало мне пакет для веб-развертывания, который именно то, что я хочу.

  • Я в очереди на новую сборку.

Шаг NuGet успешен.

Этап сборки выполняется до тех пор, пока не будет...

_TransformWebConfig:

...а потом...

Web.config не найден. Создание C:\a\1\s\src\WebApp\obj\Release\net462\win7-x86\PubTmp\Out\web.config

...а также...

Microsoft.NET.Sdk.Publish.MSDeployPackage.targets (124,7): Ошибка MSB4184: выражение "[System.IO.Path]::GetDirectoryName('')" не может быть оценено. Путь не имеет юридической формы.

3 ответа

Решение

Эта проблема была исправлена: https://github.com/aspnet/websdk/issues/106

Пример командной строки и синтаксиса для использования в VSTS (шаблоны ASPNET Core уже должны иметь это в шаблоне): https://github.com/vijayrkn/ASPNetPublishSamples/blob/bff9f78d796668dc07d5e28a8b93531caade839c/Publish.cmd#L102-L127

Я думаю, что у следующей статьи есть ответ.

https://www.visualstudio.com/en-us/docs/build/apps/aspnet/aspnetcore-to-azure.

Таким образом, не используйте Visual Studio для сборки, вместо этого используйте CLI, т.е.

dotnet.exe publish -c $ (BuildConfiguration) -o $ (Build.ArtifactStagingDirectory)

Вы можете использовать шаблон сборки ASP.NET Core (Preview), он публикует приложение.Net Core с помощью инструмента dotnet.

  1. Создать новое определение сборки
  2. Выберите шаблон сборки ASP.NET Core (Preview)
Другие вопросы по тегам