VSTS 无法构建我非常非常简单的 ASP.NET 核心应用程序
VSTS fails to build my really really simple ASP.NET Core app
下面的很简单,但是失败了。怎么了?
我在 Visual Studio 2017 年创建了一个新的 ASP.NET 核心 Web 应用程序 (.NET Framework 4.6.2)。
我没有对默认模板进行任何更改,并将其推送到 VSTS。
我通过以下两个步骤在 VSTS 中创建一个新的构建定义:
- NuGet 恢复
- Visual Studio 构建
我更新 NuGet 步骤以使用版本 4.0.0
我更新了定义以使用 Hosted VS2017 代理。
我使用带有默认 MSBuild 参数的 VS2017 离开构建步骤:
/p:DeployOnBuild=true /p:WebPublishMethod=Package /p:PackageAsSingleFile=true /p:SkipInvalidConfigurations=true /p:PackageLocation="$(build.artifactstagingdirectory)\".
在以前的版本中,这会创建一个 Web 部署包,这正是我想要的。
- 我排队一个新版本。
NuGet 步骤成功。
构建步骤一直运行到它记录...
_TransformWebConfig:
...然后...
No web.config found. Creating 'C:\a\s\src\WebApp\obj\Release\net462\win7-x86\PubTmp\Out\web.config'
...和...
Microsoft.NET.Sdk.Publish.MSDeployPackage.targets(124,7): Error MSB4184: The expression "[System.IO.Path]::GetDirectoryName('')" cannot be evaluated. The path is not of a legal form.
您可以使用 ASP.NET Core(预览版)构建模板,它通过 dotnet 工具发布 .Net Core 应用程序。
- 创建新的构建定义
- Select ASP.NET 核心(预览版)构建模板
我想下面的文章会有答案。
https://www.visualstudio.com/en-us/docs/build/apps/aspnet/aspnetcore-to-azure.
总而言之,不要使用 Visual Studio 进行构建,而是使用 CLI,即
dotnet.exe publish -c $(BuildConfiguration) -o $(Build.ArtifactStagingDirectory)
此问题已修复:https://github.com/aspnet/websdk/issues/106
在 VSTS 中使用的示例命令行和语法(ASPNET Core 模板应该已经在模板中):https://github.com/vijayrkn/ASPNetPublishSamples/blob/bff9f78d796668dc07d5e28a8b93531caade839c/Publish.cmd#L102-L127
下面的很简单,但是失败了。怎么了?
我在 Visual Studio 2017 年创建了一个新的 ASP.NET 核心 Web 应用程序 (.NET Framework 4.6.2)。
我没有对默认模板进行任何更改,并将其推送到 VSTS。
我通过以下两个步骤在 VSTS 中创建一个新的构建定义:
- NuGet 恢复
- Visual Studio 构建
我更新 NuGet 步骤以使用版本 4.0.0
我更新了定义以使用 Hosted VS2017 代理。
我使用带有默认 MSBuild 参数的 VS2017 离开构建步骤:
/p:DeployOnBuild=true /p:WebPublishMethod=Package /p:PackageAsSingleFile=true /p:SkipInvalidConfigurations=true /p:PackageLocation="$(build.artifactstagingdirectory)\".
在以前的版本中,这会创建一个 Web 部署包,这正是我想要的。
- 我排队一个新版本。
NuGet 步骤成功。
构建步骤一直运行到它记录...
_TransformWebConfig:
...然后...
No web.config found. Creating 'C:\a\s\src\WebApp\obj\Release\net462\win7-x86\PubTmp\Out\web.config'
...和...
Microsoft.NET.Sdk.Publish.MSDeployPackage.targets(124,7): Error MSB4184: The expression "[System.IO.Path]::GetDirectoryName('')" cannot be evaluated. The path is not of a legal form.
您可以使用 ASP.NET Core(预览版)构建模板,它通过 dotnet 工具发布 .Net Core 应用程序。
- 创建新的构建定义
- Select ASP.NET 核心(预览版)构建模板
我想下面的文章会有答案。
https://www.visualstudio.com/en-us/docs/build/apps/aspnet/aspnetcore-to-azure.
总而言之,不要使用 Visual Studio 进行构建,而是使用 CLI,即
dotnet.exe publish -c $(BuildConfiguration) -o $(Build.ArtifactStagingDirectory)
此问题已修复:https://github.com/aspnet/websdk/issues/106
在 VSTS 中使用的示例命令行和语法(ASPNET Core 模板应该已经在模板中):https://github.com/vijayrkn/ASPNetPublishSamples/blob/bff9f78d796668dc07d5e28a8b93531caade839c/Publish.cmd#L102-L127