VSTS无法构建我真正简单的ASP.NET Core应用程序

时间:2017-04-17 06:52:41

标签: asp.net-core azure-pipelines

以下是如此简单但却失败了。怎么了?

  • 我在Visual Studio 2017中创建了一个新的ASP.NET核心Web应用程序(.NET Framework 4.6.2)。

  • 我没有更改默认模板,而是将其推送到VSTS。

  • 我使用以下两个步骤在VSTS中创建新的构建定义:

    1. NuGet Restore
    2. Visual Studio Build
  • 我将NuGet步骤更新为使用版本4.0.0

  • 我更新定义以使用Hosted VS2017代理。

  • 我使用VS2017使用默认的MSBuild参数离开Build步骤:

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

在以前的版本中,这将创建一个Web部署包,这正是我想要的。

  • 我排队了一个新版本。

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 个答案:

答案 0 :(得分:0)

您可以使用ASP.NET Core(预览版)构建模板,它通过dotnet工具发布.Net Core应用程序。

  1. 创建新的构建定义
  2. 选择ASP.NET Core(预览)构建模板

答案 1 :(得分:0)

我认为以下文章有答案。

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

总之,不要使用Visual Studio进行构建,而是使用CLI,即

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

答案 2 :(得分:0)

此问题已修复:https://github.com/aspnet/websdk/issues/106

在VSTS中使用的示例命令行和语法(ASPNET核心模板应该已经在模板中使用了这个):https://github.com/vijayrkn/ASPNetPublishSamples/blob/bff9f78d796668dc07d5e28a8b93531caade839c/Publish.cmd#L102-L127