VSTS构建任务在.NetFramework4.6.1项目引用.NetStandard2.0上失败

时间:2017-08-18 01:56:33

标签: c# .net msbuild azure-devops .net-standard

  

⚠️我已经在dotnet/standard

中创建了一个问题      

问题已使用简化的代码参考进行更新,您可以在自己的环境中重现该问题。 (自述文件中提供了VSTS设置的屏幕截图)

  • .Net Framework 4.6.1 项目,引用 .NetStandard2.0 (非预览)项目
  • Visual Studio 2017 Update 3 (非预览,VisualStudio.15.Release / 15.3.0 + 26730.3)

到目前为止,一切都在LOCAL环境中正常运行。 当我在 Visual Studio Team Services 上运行构建时,它会抛出错误/ s

错误消息

[error]src\Ninja.Dojo\Fight.cs(18,19): Error CS0012: The type 'IServiceProvider' is defined in an assembly that is not referenced. You must add a reference to assembly 'netstandard, Version=2.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51'.

项目

  1. libraries .Net Standard 2 项目将在构建时创建Nuget文件。
  2. host .Net Framework 4.6.1 项目,该项目引用第一个项目中的库。
  3. 从VSTS构建日志

    2017-08-18T14:59:35.5041535Z ##[section]Starting: Build solution **\*.sln
    2017-08-18T14:59:35.5051537Z ==============================================================================
    2017-08-18T14:59:35.5051537Z Task         : Visual Studio Build
    2017-08-18T14:59:35.5051537Z Description  : Build with MSBuild and set the Visual Studio version property
    2017-08-18T14:59:35.5051537Z Version      : 1.120.0
    2017-08-18T14:59:35.5051537Z Author       : Microsoft Corporation
    2017-08-18T14:59:35.5051537Z Help         : [More Information](https://go.microsoft.com/fwlink/?LinkID=613727)
    2017-08-18T14:59:35.5051537Z ==============================================================================
    2017-08-18T14:59:48.6257526Z ##[command]"D:\a\_tasks\VSBuild_71a9a2d3-a98a-4caa-96ab-affca411ecda\1.120.0\ps_modules\MSBuildHelpers\vswhere.exe" -version [15.0,16.0) -latest -format json
    2017-08-18T14:59:51.6300908Z ##[command]"C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\MSBuild\15.0\Bin\amd64\msbuild.exe" "d:\a\1\s\Master.sln" /nologo /nr:false /dl:CentralLogger,"D:\a\_tasks\VSBuild_71a9a2d3-a98a-4caa-96ab-affca411ecda\1.120.0\ps_modules\MSBuildHelpers\Microsoft.TeamFoundation.DistributedTask.MSBuild.Logger.dll";"RootDetailId=87bd1e1e-4dcf-4d71-8cb7-fc0125dab831|SolutionDir=d:\a\1\s"*ForwardingLogger,"D:\a\_tasks\VSBuild_71a9a2d3-a98a-4caa-96ab-affca411ecda\1.120.0\ps_modules\MSBuildHelpers\Microsoft.TeamFoundation.DistributedTask.MSBuild.Logger.dll"  /p:platform="any cpu" /p:configuration="release" /p:VisualStudioVersion="15.0" /p:_MSDeployUserAgent="VSTS_9f6183ec-4019-4b83-8c63-ab568eabce20_build_42_364"
    2017-08-18T14:59:52.3397972Z Building the projects in this solution one at a time. To enable parallel build, please add the "/m" switch.
    2017-08-18T14:59:52.5302712Z Build started 8/18/2017 2:59:52 PM.
    2017-08-18T14:59:52.8926831Z Project "d:\a\1\s\Master.sln" on node 1 (default targets).
    2017-08-18T14:59:52.8946824Z ValidateSolutionConfiguration:
    2017-08-18T14:59:52.8946824Z   Building solution configuration "release|any cpu".
    2017-08-18T14:59:53.2070570Z Project "d:\a\1\s\Master.sln" (1) is building "d:\a\1\s\src\Ninja.Dojo\Ninja.Dojo.csproj" (2) on node 1 (default targets).
    2017-08-18T14:59:53.2070570Z PrepareForBuild:
    2017-08-18T14:59:53.2070570Z   Creating directory "bin\Release\".
    2017-08-18T14:59:53.2080251Z   Creating directory "obj\Release\".
    2017-08-18T14:59:53.8416739Z CoreCompile:
    2017-08-18T14:59:53.8556757Z   C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\MSBuild\15.0\Bin\Roslyn\csc.exe /noconfig /nowarn:1701,1702 /nostdlib+ /errorreport:prompt /warn:4 /define:TRACE /highentropyva+ /reference:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.6.1\Microsoft.CSharp.dll" /reference:d:\a\1\s\packages\Microsoft.Extensions.DependencyInjection.Abstractions.2.0.0\lib\netstandard2.0\Microsoft.Extensions.DependencyInjection.Abstractions.dll /reference:d:\a\1\s\packages\Microsoft.Win32.Primitives.4.3.0\lib\net46\Microsoft.Win32.Primitives.dll /reference:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.6.1\mscorlib.dll" /reference:d:\a\1\s\packages\Ninja.Abstractions.1.0.363\lib\netstandard2.0\Ninja.Abstractions.dll /reference:d:\a\1\s\packages\Ninja.Domain.1.0.363\lib\netstandard2.0\Ninja.Domain.dll /reference:d:\a\1\s\packages\System.AppContext.4.3.0\lib\net46\System.AppContext.dll /reference:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.6.1\System.ComponentModel.Composition.dll" /reference:d:\a\1\s\packages\System.Console.4.3.0\lib\net46\System.Console.dll /reference:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.6.1\System.Core.dll" /reference:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.6.1\System.Data.DataSetExtensions.dll" /reference:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.6.1\System.Data.dll" /reference:d:\a\1\s\packages\System.Diagnostics.DiagnosticSource.4.4.1\lib\net46\System.Diagnostics.DiagnosticSource.dll /reference:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.6.1\System.dll" /reference:d:\a\1\s\packages\System.Globalization.Calendars.4.3.0\lib\net46\System.Globalization.Calendars.dll /reference:d:\a\1\s\packages\System.IO.Compression.4.3.0\lib\net46\System.IO.Compression.dll /reference:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.6.1\System.IO.Compression.FileSystem.dll" /reference:d:\a\1\s\packages\System.IO.Compression.ZipFile.4.3.0\lib\net46\System.IO.Compression.ZipFile.dll /reference:d:\a\1\s\packages\System.IO.FileSystem.4.3.0\lib\net46\System.IO.FileSystem.dll /reference:d:\a\1\s\packages\System.IO.FileSystem.Primitives.4.3.0\lib\net46\System.IO.FileSystem.Primitives.dll /reference:d:\a\1\s\packages\System.Net.Http.4.3.2\lib\net46\System.Net.Http.dll /reference:d:\a\1\s\packages\System.Net.Sockets.4.3.0\lib\net46\System.Net.Sockets.dll /reference:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.6.1\System.Numerics.dll" /reference:d:\a\1\s\packages\System.Runtime.InteropServices.RuntimeInformation.4.3.0\lib\net45\System.Runtime.InteropServices.RuntimeInformation.dll /reference:d:\a\1\s\packages\System.Security.Cryptography.Algorithms.4.3.0\lib\net461\System.Security.Cryptography.Algorithms.dll /reference:d:\a\1\s\packages\System.Security.Cryptography.Encoding.4.3.0\lib\net46\System.Security.Cryptography.Encoding.dll /reference:d:\a\1\s\packages\System.Security.Cryptography.Primitives.4.3.0\lib\net46\System.Security.Cryptography.Primitives.dll /reference:d:\a\1\s\packages\System.Security.Cryptography.X509Certificates.4.3.0\lib\net461\System.Security.Cryptography.X509Certificates.dll /reference:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.6.1\System.Xml.dll" /reference:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.6.1\System.Xml.Linq.dll" /reference:d:\a\1\s\packages\System.Xml.ReaderWriter.4.3.0\lib\net46\System.Xml.ReaderWriter.dll /reference:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.6.1\Facades\System.Collections.Concurrent.dll" /reference:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.6.1\Facades\System.Collections.dll" /reference:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.6.1\Facades\System.ComponentModel.Annotations.dll" /reference:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.6.1\Facades\System.ComponentModel.dll" /reference:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.6.1\Facades\System.ComponentModel.EventBasedAsync.dll" /reference:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.6.1\Facades\System.Diagnostics.Contracts.dll" /reference:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.6.1\Facades\System.Diagnostics.Debug.dll" /reference:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.6.1\Facades\System.Diagnostics.Tools.dll" /reference:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.6.1\Facades\System.Diagnostics.Tracing.dll" /reference:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.6.1\Facades\System.Dynamic.Runtime.dll" /reference:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.6.1\Facades\System.Globalization.dll" /reference:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.6.1\Facades\System.IO.dll" /reference:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.6.1\Facades\System.Linq.dll" /reference:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.6.1\Facades\System.Linq.Expressions.dll" /reference:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.6.1\Facades\System.Linq.Parallel.dll" /reference:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.6.1\Facades\System.Linq.Queryable.dll" /reference:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.6.1\Facades\System.Net.NetworkInformation.dll" /reference:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.6.1\Facades\System.Net.Primitives.dll" /reference:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.6.1\Facades\System.Net.Requests.dll" /reference:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.6.1\Facades\System.Net.WebHeaderCollection.dll" /reference:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.6.1\Facades\System.ObjectModel.dll" /reference:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.6.1\Facades\System.Reflection.dll" /reference:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.6.1\Facades\System.Reflection.Emit.dll" /reference:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.6.1\Facades\System.Reflection.Emit.ILGeneration.dll" /reference:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.6.1\Facades\System.Reflection.Emit.Lightweight.dll" /reference:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.6.1\Facades\System.Reflection.Extensions.dll" /reference:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.6.1\Facades\System.Reflection.Primitives.dll" /reference:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.6.1\Facades\System.Resources.ResourceManager.dll" /reference:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.6.1\Facades\System.Runtime.dll" /reference:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.6.1\Facades\System.Runtime.Extensions.dll" /reference:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.6.1\Facades\System.Runtime.Handles.dll" /reference:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.6.1\Facades\System.Runtime.InteropServices.dll" /reference:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.6.1\Facades\System.Runtime.InteropServices.WindowsRuntime.dll" /reference:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.6.1\Facades\System.Runtime.Numerics.dll" /reference:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.6.1\Facades\System.Runtime.Serialization.Json.dll" /reference:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.6.1\Facades\System.Runtime.Serialization.Primitives.dll" /reference:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.6.1\Facades\System.Runtime.Serialization.Xml.dll" /reference:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.6.1\Facades\System.Security.Principal.dll" /reference:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.6.1\Facades\System.ServiceModel.Duplex.dll" /reference:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.6.1\Facades\System.ServiceModel.Http.dll" /reference:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.6.1\Facades\System.ServiceModel.NetTcp.dll" /reference:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.6.1\Facades\System.ServiceModel.Primitives.dll" /reference:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.6.1\Facades\System.ServiceModel.Security.dll" /reference:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.6.1\Facades\System.Text.Encoding.dll" /reference:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.6.1\Facades\System.Text.Encoding.Extensions.dll" /reference:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.6.1\Facades\System.Text.RegularExpressions.dll" /reference:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.6.1\Facades\System.Threading.dll" /reference:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.6.1\Facades\System.Threading.Tasks.dll" /reference:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.6.1\Facades\System.Threading.Tasks.Parallel.dll" /reference:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.6.1\Facades\System.Threading.Timer.dll" /reference:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.6.1\Facades\System.Xml.XDocument.dll" /reference:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.6.1\Facades\System.Xml.XmlSerializer.dll" /debug:pdbonly /filealign:512 /optimize+ /out:obj\Release\Ninja.Dojo.dll /ruleset:"C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\Team Tools\Static Analysis Tools\\Rule Sets\MinimumRecommendedRules.ruleset" /subsystemversion:6.00 /target:library /utf8output Fight.cs Properties\AssemblyInfo.cs "d:\a\_temp\.NETFramework,Version=v4.6.1.AssemblyAttributes.cs"
    2017-08-18T14:59:53.8716763Z   Using shared compilation with compiler from directory: C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\MSBuild\15.0\Bin\Roslyn
    2017-08-18T14:59:54.8517055Z ##[error]src\Ninja.Dojo\Fight.cs(18,19): Error CS0012: The type 'IServiceProvider' is defined in an assembly that is not referenced. You must add a reference to assembly 'netstandard, Version=2.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51'.
    2017-08-18T14:59:54.8517055Z Fight.cs(18,19): error CS0012: The type 'IServiceProvider' is defined in an assembly that is not referenced. You must add a reference to assembly 'netstandard, Version=2.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51'. [d:\a\1\s\src\Ninja.Dojo\Ninja.Dojo.csproj]
    2017-08-18T14:59:54.8577237Z Done Building Project "d:\a\1\s\src\Ninja.Dojo\Ninja.Dojo.csproj" (default targets) -- FAILED.
    2017-08-18T14:59:54.8597063Z Done Building Project "d:\a\1\s\Master.sln" (default targets) -- FAILED.
    2017-08-18T14:59:54.8617060Z 
    2017-08-18T14:59:54.8617060Z Build FAILED.
    2017-08-18T14:59:54.8667067Z 
    2017-08-18T14:59:54.8687069Z "d:\a\1\s\Master.sln" (default target) (1) ->
    2017-08-18T14:59:54.8687069Z "d:\a\1\s\src\Ninja.Dojo\Ninja.Dojo.csproj" (default target) (2) ->
    2017-08-18T14:59:54.8687069Z (CoreCompile target) -> 
    2017-08-18T14:59:54.8687069Z   Fight.cs(18,19): error CS0012: The type 'IServiceProvider' is defined in an assembly that is not referenced. You must add a reference to assembly 'netstandard, Version=2.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51'. [d:\a\1\s\src\Ninja.Dojo\Ninja.Dojo.csproj]
    2017-08-18T14:59:54.8687069Z 
    2017-08-18T14:59:54.8687069Z     0 Warning(s)
    2017-08-18T14:59:54.8687069Z     1 Error(s)
    2017-08-18T14:59:54.8687069Z 
    2017-08-18T14:59:54.8687069Z Time Elapsed 00:00:02.34
    2017-08-18T14:59:56.8168716Z ##[error]Process 'msbuild.exe' exited with code '1'.
    2017-08-18T14:59:56.8408732Z ##[section]Finishing: Build solution **\*.sln
    

    请告知

2 个答案:

答案 0 :(得分:1)

你的packages.config是什么样的?我想您可能想要添加NETStandard.Library,以便在运行nuget restore时下载程序集:https://www.nuget.org/packages/NETStandard.Library/

答案 1 :(得分:0)

Microsoft.NETCore.Platforms软件包用于此目的:

  

提供解决.NETCore程序包的目标框架,平台和特定于运行时的实现所需的运行时信息。