VSTS не удается создать действительно простое приложение ASP.NET Core
Следующее так просто, и все же это терпит неудачу. В чем дело?
Я создаю новое базовое веб-приложение ASP.NET (.NET Framework 4.6.2) в Visual Studio 2017.
Я не делаю никаких изменений в шаблон по умолчанию и помещаю его в VSTS.
Я создаю новое определение сборки в VSTS с помощью следующих двух шагов:
- NuGet Restore
- 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.
- Создать новое определение сборки
- Выберите шаблон сборки ASP.NET Core (Preview)