简体   繁体   English

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

[英]VSTS build task fails on a .NetFramework4.6.1 project references .NetStandard2.0

⚠️ I already created an issue in dotnet/standard ⚠️我已经在dotnet / standard中创建了一个问题

🚨 Question has been updated with simplified code reference that you may reproduce it on your own environment. 🚨问题已使用简化的代码参考进行更新,您可以在自己的环境中重现该参考。 (Screenshots of VSTS settings are available in readme file) (自述文件中提供了VSTS设置的屏幕截图)

  • a .Net Framework 4.6.1 project that references .NetStandard2.0 (not preview) project 一个引用.NetStandard2.0 (非预览)项目的.Net Framework 4.6.1项目
  • Visual Studio 2017 Update 3 (not preview, VisualStudio.15.Release/15.3.0+26730.3) Visual Studio 2017 Update 3 (不预览,VisualStudio.15.Release / 15.3.0 + 26730.3)

so far everything is working fine in LOCAL environment. 到目前为止,LOCAL环境中一切正常。 When I run a build on Visual Studio Team Services it throws the error/s below 当我在Visual Studio Team Services上运行构建时,它会抛出下面的错误

Error message 错误信息

[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'.

Projects 项目

  1. libraries .Net Standard 2 projects will create Nuget file upon build. .Net Standard 2项目将在构建时创建Nuget文件。
  2. host a .Net Framework 4.6.1 project that references libraries from the 1st project. 托管一个引用第一个项目库的.Net Framework 4.6.1项目。

Build log from VSTS 从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

Please advise 🤗 请告知🤗

What does your packages.config look like? 你的packages.config是什么样的? I think you might want to add the NETStandard.Library so that assembly is downloaded when you run nuget restore: https://www.nuget.org/packages/NETStandard.Library/ 我想您可能想要添加NETStandard.Library,以便在运行nuget restore时下载程序集: https ://www.nuget.org/packages/NETStandard.Library/

Microsoft.NETCore.Platforms package is used for this purpose: Microsoft.NETCore.Platforms包用于此目的:

Provides runtime information required to resolve target framework, platform, and runtime specific implementations of .NETCore packages. 提供解析.NETCore包的目标框架,平台和运行时特定实现所需的运行时信息。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 有什么方法可以使用 .netstandard2.0 或 .netstandard3.0 将 .NETFramework 4.7.1 nuget 安装到项目中 - Is there any way we can install .NETFramework 4.7.1 nuget into project using .netstandard2.0 or .netstandard3.0 使用.netFramework版本4.6.1而不是项目目标框架.NETStandard v2.0还原了EF6.2 - EF6.2 was restored using .netFramework version 4.6.1 instead of the project target framework .NETStandard v2.0 在.netStandard2.0项目中添加“连接服务” - Add “Connected service” in .netStandard2.0 project 如何在 .NetStandard2.0 项目中定位 Windows? - How to target Windows in .NetStandard2.0 project? nuget 包中 .netstandard2.0 和 .netframework47 DLL 的混合 - .netstandard 不可用 - Mix of .netstandard2.0 and .netframework47 DLLs in nuget package - .netstandard not available 错误消息:Project Android.Common与netstandard2.0不兼容 - Error message:Project Android.Common is not compatible with netstandard2.0 将netstandard2.0库加载到net461项目 - Load in netstandard2.0 libraries to net461 project 在 NetStandard2.0 项目中使用 Roslyn 编译动态创建的代码 - Use Roslyn in NetStandard2.0 project to compile dynamically created code ISystemClock 在 netstandard2.0 中不可用 - ISystemClock not available in netstandard2.0 .NetStandard2.0中的AsymmetricSecurityBindingElement在哪里? - Where is AsymmetricSecurityBindingElement in .NetStandard2.0?
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM