TFS 2018 [온-프레미스]에서 서비스 패브릭 프로젝트를 빌드하는 MSBuild 작업이 있습니다. 이 솔루션은 Visual Studio 2019 및 MSBuild를 사용하여 로컬에서 잘 빌드됩니다. TFS 빌드 에이전트에서 오류와 함께 실패합니다.
오류 NETSDK1045 : 현재 .NET SDK는 .NET Core 3.1 대상 지정을 지원하지 않습니다. .NET Core 2.1 이하를 대상으로하거나 .NET Core 3.1을 지원하는 .NET SDK 버전을 사용합니다.
"C : \ Program Files (x86) \ Microsoft Visual Studio \ 2019 \ Professional \ MSBuild \ Current \ Bin \ msbuild.exe"를 사용하도록 MSBuild 작업을 명시 적으로 구성했습니다.
다음 매개 변수와 함께 MSBuild 작업을 사용하고 있습니다.
/ p : Deterministic = true / t : Package /p:PackageLocation=$(build.artifactstagingdirectory)\applicationpackage
TFS 빌드 에이전트에는 Visual Studio 2017 및 2019가 모두 설치되어 있습니다. 또한 .Net core SDK 3.1이 설치되어 있습니다. [3.1.100 버전].
어떤 이유로 빌드 출력에 SDK가 "C : \ Program Files \ dotnet \ sdk \ 2.1.602"에서 선택되고 있음이 표시됩니다. "C : \ Program Files \ dotnet \ sdk \ 3.1.100"의 SDK를 사용해야합니다.
MSBuild 작업에서 C : \ Program Files \ dotnet \ sdk \ 3.1.100의 SDK를 사용하도록 강제하는 방법
빌드 에이전트가 인터넷에 액세스 할 수 없기 때문에 파이프 라인에 "Nuget 도구 설치 프로그램"작업을 추가 할 수 없습니다.
참고 : 프로젝트는 .net 코어 2.2에있을 때 TFS에서 Visual Studio 2017 빌드 작업의 MSBuild를 사용하여 잘 빌드되었습니다.
프로젝트 중 하나를 .net core 3.1 및 VS 2019로 업그레이드해야했고 TFS에서 빌드가 중단되었습니다.
SFProj 파일의 내용 :
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="14.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" InitialTargets=";ValidateMSBuildFiles">
<Import Project="..\..\packages\Microsoft.VisualStudio.Azure.Fabric.MSBuild.1.6.7\build\Microsoft.VisualStudio.Azure.Fabric.Application.props" Condition="Exists('..\..\packages\Microsoft.VisualStudio.Azure.Fabric.MSBuild.1.6.7\build\Microsoft.VisualStudio.Azure.Fabric.Application.props')" />
<PropertyGroup Label="Globals">
<ProjectGuid>3b02cfa3-a4c3-49ea-9186-64ae171d64a7</ProjectGuid>
<ProjectVersion>2.3</ProjectVersion>
<MinToolsVersion>1.5</MinToolsVersion>
<SupportedMSBuildNuGetPackageVersion>1.6.7</SupportedMSBuildNuGetPackageVersion>
<TargetFrameworkVersion>v4.6.2</TargetFrameworkVersion>
</PropertyGroup>
<ItemGroup Label="ProjectConfigurations">
<ProjectConfiguration Include="Debug|x64">
<Configuration>Debug</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|x64">
<Configuration>Release</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
</ItemGroup>
<ItemGroup>
<None Include="ApplicationParameters\Local.1Node.xml" />
<None Include="ApplicationParameters\Local.5Node.xml" />
<None Include="PublishProfiles\Local.1Node.xml" />
<None Include="PublishProfiles\Local.5Node.xml" />
<None Include="Scripts\Deploy-FabricApplication.ps1" />
</ItemGroup>
<ItemGroup>
<Content Include="ApplicationPackageRoot\ApplicationManifest.xml" />
<Content Include="ApplicationParameters\Params.xml" />
<Content Include="packages.config" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\Stateful1.csproj" />
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.Common.targets" />
<PropertyGroup>
<ApplicationProjectTargetsPath>$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)\Service Fabric Tools\Microsoft.VisualStudio.Azure.Fabric.ApplicationProject.targets</ApplicationProjectTargetsPath>
</PropertyGroup>
<Import Project="$(ApplicationProjectTargetsPath)" Condition="Exists('$(ApplicationProjectTargetsPath)')" />
<Import Project="..\..\packages\Microsoft.VisualStudio.Azure.Fabric.MSBuild.1.6.7\build\Microsoft.VisualStudio.Azure.Fabric.Application.targets" Condition="Exists('..\..\packages\Microsoft.VisualStudio.Azure.Fabric.MSBuild.1.6.7\build\Microsoft.VisualStudio.Azure.Fabric.Application.targets')" />
<Target Name="ValidateMSBuildFiles" BeforeTargets="PrepareForBuild">
<Error Condition="!Exists('..\..\packages\Microsoft.VisualStudio.Azure.Fabric.MSBuild.1.6.7\build\Microsoft.VisualStudio.Azure.Fabric.Application.props')" Text="Unable to find the '..\..\packages\Microsoft.VisualStudio.Azure.Fabric.MSBuild.1.6.7\build\Microsoft.VisualStudio.Azure.Fabric.Application.props' file. Please restore the 'Microsoft.VisualStudio.Azure.Fabric.MSBuild' Nuget package." />
<Error Condition="!Exists('..\..\packages\Microsoft.VisualStudio.Azure.Fabric.MSBuild.1.6.7\build\Microsoft.VisualStudio.Azure.Fabric.Application.targets')" Text="Unable to find the '..\..\packages\Microsoft.VisualStudio.Azure.Fabric.MSBuild.1.6.7\build\Microsoft.VisualStudio.Azure.Fabric.Application.targets' file. Please restore the 'Microsoft.VisualStudio.Azure.Fabric.MSBuild' Nuget package." />
</Target>
</Project>
우리는 VS 2019 빌드 만 설치된 전용 dotnet 풀을 사용했습니다. 지금 작동하고 있습니다. 동일한 에이전트 컴퓨터에 VS 2017 및 VS 2019가있는 경우 VS 2017 빌드 도구를 선택하여 VS 2019 빌드가 실패하는 것 같습니다.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다