在VS 2017中添加了具有docker支持的ASP.NET Core 2项目,在本地运行良好,但在VSTS构建中构建失败,出现以下错误:
2018-06-29T16:07:50.4095117Z ## [错误] C:\ Program Files(x86)\ Microsoft Visual Studio \ 2017 \ Enterprise \ MSBuild \ Sdks \ Microsoft.Docker.Sdk \ build \ Microsoft.VisualStudio .Docker.Compose.targets(151,5):错误:当前的Visual Studio容器工具不支持项目版本'2.0'。
我试图构建Team Services并发布到Azure中容器的应用程序服务。
docker-compose.dcproj内容:
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="15.0" Sdk="Microsoft.Docker.Sdk">
<PropertyGroup Label="Globals">
<ProjectVersion>2.0</ProjectVersion>
<DockerTargetOS>Linux</DockerTargetOS>
<ProjectGuid>cc9f4ebc-dd9f-4592-9533-b4954b467670</ProjectGuid>
<DockerLaunchAction>LaunchBrowser</DockerLaunchAction>
<DockerServiceUrl>http://localhost:{ServicePort}</DockerServiceUrl>
<DockerServiceName>status</DockerServiceName>
</PropertyGroup>
<ItemGroup>
<None Include="docker-compose.override.yml">
<DependentUpon>docker-compose.yml</DependentUpon>
</None>
<None Include="docker-compose.yml" />
<None Include=".dockerignore" />
</ItemGroup>
答案 0 :(得分:6)
由于使用的是Hosted VS2017代理,因此仅安装了VS2017,并且只能使用docker的Windows容器。因此,请进行以下更改(例如,作为共享的示例项目):
更改docker-compose.dcproj
文件
2.0
更改为2.1
Linux
更改为Windows
更改docker-compose.yml
和docker-compose.override.yml
文件
3
更改为3.4
然后,该项目可以由Hosted VS2017代理成功构建。 这是基于您共享的modified project。
顺便说一句:您也可以使用private agent来构建您的项目。如果可以在本地成功构建,则使用私有代理可以通过VSTS构建成功构建项目。