Netstandard 1.0 PCL (classic) cannot add P2P ref to cross-compiled CPS proj #936

Closed
onovotny opened this Issue Dec 13, 2016 · 13 comments

Projects

Not Started in .NET Core RC3

7 participants

@onovotny
onovotny commented Dec 13, 2016 edited

I have a "classic" PCL project that targets netstandard1.0 and has a project.json. When I try to add a P2P reference to a "modern" cross-compiled project that also has a netstandard1.0 target, I get an error.

err

Manually adding the p2p ref in code has a compile time failure:

C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\MSBuild\Sdks\Microsoft.NET.Sdk\build\Microsoft.NET.Sdk.Common.targets(70,5): error : Project 'C:\dev\Zeroconf\Zeroconf\Zeroconf.csproj' has no target framework compatible with '.NETPortable,Version=v5.0'.

@dsplaisted dsplaisted was assigned by srivatsn Dec 13, 2016
@srivatsn srivatsn added this to the 1.0 RC3 milestone Dec 13, 2016
@srivatsn srivatsn added the Bug label Dec 13, 2016
@onovotny

This also happens when trying to add a P2P ref from a WP8 Silverlight project to the same cross-compiled lib. Do you want a new issue or attach it to this one?

@srivatsn
Contributor

Single issue is fine.

@onovotny

Okay, cool.

So if I add it manually to the WP8 SL project, I get a different compile time error:

2>Skipping target "GenerateTargetFrameworkMonikerAttribute" because all output files are up-to-date with respect to the input files.
2>CoreCompile:
2>  C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\MSBuild\15.0\Bin\csc.exe /noconfig /nowarn:1701,1702,2008 /nostdlib+ /errorreport:prompt /warn:4 /define:DEBUG;TRACE;SILVERLIGHT;WINDOWS_PHONE /errorendlocation /preferreduilang:en-US /reference:C:\Users\oren\.nuget\packages\WPtoolkit\4.2013.8.16\lib\wp8\Microsoft.Phone.Controls.Toolkit.dll /reference:C:\Users\oren\.nuget\packages\System.Reactive.Core\3.1.1\lib\netstandard1.0\System.Reactive.Core.dll /reference:C:\Users\oren\.nuget\packages\System.Reactive.Interfaces\3.1.1\lib\netstandard1.0\System.Reactive.Interfaces.dll /reference:C:\Users\oren\.nuget\packages\System.Reactive.Linq\3.1.1\lib\netstandard1.0\System.Reactive.Linq.dll /reference:C:\Users\oren\.nuget\packages\System.Reactive.PlatformServices\3.1.1\lib\netstandard1.0\System.Reactive.PlatformServices.dll /reference:C:\dev\Zeroconf\Zeroconf\bin\Debug\netstandard1.0\Zeroconf.dll /reference:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\WindowsPhone\v8.0\Microsoft.CSharp.dll" /reference:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\WindowsPhone\v8.0\Microsoft.Devices.Sensors.dll" /reference:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\WindowsPhone\v8.0\Microsoft.Phone.dll" /reference:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\WindowsPhone\v8.0\Microsoft.Phone.Interop.dll" /reference:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\WindowsPhone\v8.0\Microsoft.Phone.Maps.dll" /reference:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\WindowsPhone\v8.0\Microsoft.Phone.Reactive.dll" /reference:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\WindowsPhone\v8.0\Microsoft.Xna.Framework.dll" /reference:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\WindowsPhone\v8.0\Microsoft.Xna.Framework.GamerServices.dll" /reference:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\WindowsPhone\v8.0\Microsoft.Xna.Framework.GamerServicesExtensions.dll" /reference:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\WindowsPhone\v8.0\Microsoft.Xna.Framework.Input.Touch.dll" /reference:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\WindowsPhone\v8.0\Microsoft.Xna.Framework.MediaLibraryExtensions.dll" /reference:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\WindowsPhone\v8.0\mscorlib.dll" /reference:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\WindowsPhone\v8.0\mscorlib.extensions.dll" /reference:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\WindowsPhone\v8.0\System.Collections.dll" /reference:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\WindowsPhone\v8.0\System.ComponentModel.dll" /reference:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\WindowsPhone\v8.0\System.ComponentModel.EventBasedAsync.dll" /reference:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\WindowsPhone\v8.0\System.Core.dll" /reference:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\WindowsPhone\v8.0\System.Data.Linq.dll" /reference:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\WindowsPhone\v8.0\System.Device.dll" /reference:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\WindowsPhone\v8.0\System.Diagnostics.Contracts.dll" /reference:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\WindowsPhone\v8.0\System.Diagnostics.Debug.dll" /reference:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\WindowsPhone\v8.0\System.Diagnostics.Tools.dll" /reference:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\WindowsPhone\v8.0\System.dll" /reference:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\WindowsPhone\v8.0\System.Dynamic.Runtime.dll" /reference:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\WindowsPhone\v8.0\System.Globalization.dll" /reference:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\WindowsPhone\v8.0\System.IO.dll" /reference:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\WindowsPhone\v8.0\System.Linq.dll" /reference:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\WindowsPhone\v8.0\System.Linq.Expressions.dll" /reference:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\WindowsPhone\v8.0\System.Linq.Queryable.dll" /reference:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\WindowsPhone\v8.0\System.Net.dll" /reference:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\WindowsPhone\v8.0\System.Net.NetworkInformation.dll" /reference:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\WindowsPhone\v8.0\System.Net.Primitives.dll" /reference:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\WindowsPhone\v8.0\System.Net.Requests.dll" /reference:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\WindowsPhone\v8.0\System.ObjectModel.dll" /reference:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\WindowsPhone\v8.0\System.Observable.dll" /reference:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\WindowsPhone\v8.0\System.Reflection.dll" /reference:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\WindowsPhone\v8.0\System.Reflection.Emit.IlGeneration.dll" /reference:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\WindowsPhone\v8.0\System.Reflection.Emit.Lightweight.dll" /reference:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\WindowsPhone\v8.0\System.Reflection.Extensions.dll" /reference:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\WindowsPhone\v8.0\System.Reflection.Primitives.dll" /reference:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\WindowsPhone\v8.0\System.Resources.ResourceManager.dll" /reference:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\WindowsPhone\v8.0\System.Runtime.dll" /reference:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\WindowsPhone\v8.0\System.Runtime.Extensions.dll" /reference:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\WindowsPhone\v8.0\System.Runtime.InteropServices.WindowsRuntime.dll" /reference:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\WindowsPhone\v8.0\System.Runtime.Serialization.dll" /reference:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\WindowsPhone\v8.0\System.Runtime.Serialization.Json.dll" /reference:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\WindowsPhone\v8.0\System.Runtime.Serialization.Primitives.dll" /reference:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\WindowsPhone\v8.0\System.Runtime.Serialization.Xml.dll" /reference:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\WindowsPhone\v8.0\System.Runtime.WindowsRuntime.dll" /reference:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\WindowsPhone\v8.0\System.Security.Principal.dll" /reference:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\WindowsPhone\v8.0\System.ServiceModel.dll" /reference:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\WindowsPhone\v8.0\System.ServiceModel.Http.dll" /reference:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\WindowsPhone\v8.0\System.ServiceModel.Primitives.dll" /reference:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\WindowsPhone\v8.0\System.ServiceModel.Security.dll" /reference:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\WindowsPhone\v8.0\System.ServiceModel.Web.dll" /reference:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\WindowsPhone\v8.0\System.Text.Encoding.dll" /reference:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\WindowsPhone\v8.0\System.Text.Encoding.Extensions.dll" /reference:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\WindowsPhone\v8.0\System.Text.RegularExpressions.dll" /reference:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\WindowsPhone\v8.0\System.Threading.dll" /reference:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\WindowsPhone\v8.0\System.Threading.Tasks.dll" /reference:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\WindowsPhone\v8.0\System.Windows.dll" /reference:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\WindowsPhone\v8.0\System.Xml.dll" /reference:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\WindowsPhone\v8.0\System.Xml.Linq.dll" /reference:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\WindowsPhone\v8.0\System.Xml.ReaderWriter.dll" /reference:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\WindowsPhone\v8.0\System.Xml.Serialization.dll" /reference:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\WindowsPhone\v8.0\System.Xml.XDocument.dll" /reference:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\WindowsPhone\v8.0\System.Xml.XmlSerializer.dll" /reference:"C:\Program Files (x86)\Windows Phone Kits\8.0\\Windows Metadata\Windows.winmd" /debug+ /debug:full /optimize- /out:obj\x86\Debug\ZeroconfTest.WP.dll /ruleset:"C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\Team Tools\Static Analysis Tools\\Rule Sets\MinimumRecommendedRules.ruleset" /resource:obj\x86\Debug\ZeroconfTest.WP.g.resources /resource:obj\x86\Debug\ZeroconfTest.WP.Resources.AppResources.resources /target:library /utf8output App.xaml.cs LocalizedStrings.cs MainPage.xaml.cs Properties\AssemblyInfo.cs Resources\AppResources.Designer.cs C:\dev\Zeroconf\ZeroconfTest.WP\obj\x86\Debug\App.g.cs C:\dev\Zeroconf\ZeroconfTest.WP\obj\x86\Debug\MainPage.g.cs "C:\Users\oren\AppData\Local\Temp\WindowsPhone,Version=v8.0.AssemblyAttributes.cs" obj\x86\Debug\\TemporaryGeneratedFile_E7A71F73-0F8D-4B9B-B56E-8E70B10BC5D3.cs obj\x86\Debug\\TemporaryGeneratedFile_036C0B5B-1481-4323-8D20-8F5ADCB23D92.cs obj\x86\Debug\\TemporaryGeneratedFile_5937a670-0e60-4077-877b-f7221da3dda1.cs
2>  Using shared compilation with compiler from directory: C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\MSBuild\15.0\Bin
2>C:\dev\Zeroconf\Zeroconf\Zeroconf.csproj : error MSB4057: The target "GetPackagingOutputs" does not exist in the project.
2>
2>Build FAILED.
2>
2>Time Elapsed 00:00:00.70
========== Build: 1 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========
@onovotny onovotny referenced this issue in AzureAD/microsoft-authentication-library-for-dotnet Dec 19, 2016
Open

Simplify project structure & move to .NET Standard #135

3 of 5 tasks complete
@srivatsn srivatsn modified the milestone: 1.0 RTM, 1.0 RC3 Jan 13, 2017
@onovotny onovotny referenced this issue in dotnet/cli Jan 17, 2017
Closed

Meta: Blocking RTM issues #5365

2 of 9 tasks complete
@dsplaisted
Member

@onovotny Is there anything blocking you from migrating the classic PCL project which targets .NET Standard to a .NET SDK project that targets .NET Standard?

@davkean
Member
davkean commented Jan 24, 2017

@srivatsn You'll probably want two issues, two different code paths and two different changes.

@davkean
Member
davkean commented Jan 24, 2017

There's 4 bugs in this issue really, all with different changes - @srivatsn I think we'll want to represent that, and then tag them as blocking end-to-end.

@onovotny onovotny closed this Jan 26, 2017
@onovotny onovotny reopened this Jan 26, 2017
@onovotny

sorry, hit the wrong button!

@srivatsn srivatsn assigned davkean and unassigned dsplaisted Jan 31, 2017
@davkean
Member
davkean commented Feb 3, 2017

I've submitted a fix for the portable block. We no longer block in this case, and let the reference succeed to fall back to the normal p2p checks during design-time builds/builds.

I've filed: #1463 to track the warnings that I see when we let this reference succeed.

@onovotny There is no WP8 SL project in VS 2017 - did you file that above before we pulled it?

@onovotny
onovotny commented Feb 3, 2017

@davkean In GitHub.com/onovotny/zeroconf, the dev branch, there's a ZeroconfTest.WP project that's WP8 SL. It may not have full editors, but it definitely still compiles by using the language targets.

I'm still seeing that issue with GetPackagingOutputs on it.

@srivatsn
Contributor
srivatsn commented Feb 5, 2017

Split out the WP8 issue and closing this out since both the PCL ref and build issues have been fixed.

@srivatsn srivatsn closed this Feb 5, 2017
@adamhewitt627
adamhewitt627 commented Feb 15, 2017 edited

@srivatsn I'm seeing the same error from a UWP project (No GetPackagingOutputs in the P2P references) but don't see an associated issue. Is that ultimately related to these, or should it file separately?

EDIT: I meant to say I'm on the latest VS2017 (15.0.26206.0) with MSBuild 15.1.545.13942.

EDIT: Here is an example library project file:

<Project Sdk="Microsoft.NET.Sdk">

  <PropertyGroup>
    <TargetFrameworks>netstandard1.4;uap10.0</TargetFrameworks>
    <DefaultLanguage>en-US</DefaultLanguage>
  </PropertyGroup>

  <Choose>
    <When Condition="'$(TargetFramework)' == 'uap10.0'">
      <PropertyGroup>
        <CopyLocalLockFileAssemblies>false</CopyLocalLockFileAssemblies>
        <NugetTargetMoniker>UAP,Version=v10.0</NugetTargetMoniker>
        <TargetPlatformIdentifier>UAP</TargetPlatformIdentifier>
        <TargetPlatformVersion>10.0.14393.0</TargetPlatformVersion>
        <TargetPlatformMinVersion>10.0.14393.0</TargetPlatformMinVersion>
        <TargetFrameworkIdentifier>.NETCore</TargetFrameworkIdentifier>
        <TargetFrameworkVersion>v5.0</TargetFrameworkVersion>
        <DefineConstants>$(DefineConstants);WINDOWS_UWP</DefineConstants>
        <LanguageTargets>$(MSBuildExtensionsPath)\Microsoft\WindowsXaml\v$(VisualStudioVersion)\Microsoft.Windows.UI.Xaml.CSharp.targets</LanguageTargets>
      </PropertyGroup>
      <ItemGroup>
        <PackageReference Include="Microsoft.NETCore.UniversalWindowsPlatform " Version="5.2.2" />
      </ItemGroup>
    </When>
  </Choose>

</Project>
@srivatsn
Contributor

There's another report of this in a muli-targeted project. We are tacking that with dotnet/sdk#707

@onovotny

The reference works now but I get build failures:
dotnet/sdk#879

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment