3
votes

⚠️ I already created an issue in 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)

  • a .Net Framework 4.6.1 project that references .NetStandard2.0 (not preview) project
  • Visual Studio 2017 Update 3 (not preview, VisualStudio.15.Release/15.3.0+26730.3)

so far everything is working fine in LOCAL environment. When I run a build on Visual Studio Team Services it throws the error/s below

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.
  2. host a .Net Framework 4.6.1 project that references libraries from the 1st project.

Build log from 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 ????

2
Is it a windows form app (framework)? What's the detail code of Program.cs? Could you reproduce this issue with a new project? Can you share the whole log here?starian chen-MSFT
No it is a common class project but there is a reference for System.Windows.Forms.dll. Nothing special in Program.cs few lines of simple code. I'm creating a sample application to reproduce this issue, I will post the link here...cilerler
Ok I will update the details in question but you may find the simplified version for reproduction at github.com/cilerler/standard2test and github.com/cilerler/standard2test and github.com/cilerler/standard2host consider creating NUGET packages from standard2test and consume it from standard2host. All the settings screenshots on VSTS are in docs folderscilerler

2 Answers

1
votes

What does your packages.config look like? 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/

0
votes

Microsoft.NETCore.Platforms package is used for this purpose:

Provides runtime information required to resolve target framework, platform, and runtime specific implementations of .NETCore packages.