Closed clairernovotny closed 7 years ago
Here is the project.assets.json file that was created. It does have a UAP,Version=v10.0 section in it. project.assets.json.txt
Removing the MSBuild.Sdk.Extras
package and manually adding the following properties at the end of the System.Reactive.csproj
<PropertyGroup Condition="'$(TargetFramework)' == 'uap10.0'">
<NugetTargetMoniker>UAP,Version=v10.0</NugetTargetMoniker>
<TargetPlatformIdentifier>UAP</TargetPlatformIdentifier>
<DefineConstants Condition="'$(DisableImplicitFrameworkDefines)' != 'true'">$(DefineConstants);NETFX_CORE;WINDOWS_UWP</DefineConstants>
<CopyLocalLockFileAssemblies Condition="'$(CopyLocalLockFileAssemblies)' == ''">false</CopyLocalLockFileAssemblies>
<TargetPlatformVersion Condition="'$(TargetPlatformVersion)' == ''">10.0.10240.0</TargetPlatformVersion>
<TargetPlatformMinVersion Condition="'$(TargetPlatformMinVersion)' == ''">10.0.10240.0</TargetPlatformMinVersion>
<TargetFrameworkVersion>v5.0</TargetFrameworkVersion>
<LanguageTargets>$(MSBuildExtensionsPath)\Microsoft\WindowsXaml\v15.0\Microsoft.Windows.UI.Xaml.CSharp.targets</LanguageTargets>
<!-- Need to override the built-in implicit defines for UAP or it'll be NETCORE5_0 -->
<!-- this makes it UAP10_0_10240_0 to match the rest -->
<ImplicitFrameworkDefine Condition="'$(DisableImplicitFrameworkDefines)' != 'true'">UAP$(TargetPlatformMinVersion.Replace('.', '_'))</ImplicitFrameworkDefine>
<DisableImplicitFrameworkDefines Condition="'$(DisableImplicitFrameworkDefines)' != 'true'">true</DisableImplicitFrameworkDefines>
</PropertyGroup>
<!--<Import Project="$(MSBuildSDKExtrasTargets)" Condition="Exists('$(MSBuildSDKExtrasTargets)')" />-->
Does not help either. So it's not a case of the props being missing on initial restore before the package exists to import the targets that define the props. Putting them in manually does not help.
We need to deal with case where nugettargetmoniker != targetframeworkmoniker in assets file check
Fixed by #1344
This needs to be reopened.... the NuGet check prevents .NET Framework libraries from being referenced by .NET Core App 2 and .NET Standard 2 libraries.
https://ci.appveyor.com/project/onovotny/refit/build/1.0.99#L232
"C:\projects\refit\Refit.sln" (restore target) (1) ->
(Restore target) ->
MSBUILD : error NU1202: Package Nustache 1.16.0.4 is not compatible with netcoreapp2.0 (.NETCoreApp,Version=v2.0). Package Nustache 1.16.0.4 supports: net20 (.NETFramework,Version=v2.0) [C:\projects\refit\Refit.sln]
MSBUILD : error NU1202: Package Nustache 1.16.0.4 is not compatible with netcoreapp2.0 (.NETCoreApp,Version=v2.0). Package Nustache 1.16.0.4 supports: net20 (.NETFramework,Version=v2.0) [C:\projects\refit\Refit.sln]
0 Warning(s)
2 Error(s)
That looks like a completely different issue, related to https://github.com/dotnet/sdk/pull/1326 not this.
I believe the issue is that VS 15.3 Preview 2 does not have a NuGet version that can handle AssetTargetFallback.
If I'm right:
dotnet
(CLI) instead of msbuild
(VS) should work<PropertyGroup>
<DisableImplicitPackageTargetFallback>true</DisableImplicitPackageTargetFallback>
<DisableImplicitAssetTargetFallback>true</DisableImplicitAssetTargetFallback>
<PackageTargetFallback>net461</PackageTargetFallback>
</PropertyGroup>
If I use dotnet
to restore and build, I see this warning:
C:\dev\refit\InterfaceStubGenerator [netcore2 ≡ +0 ~2 -1 !]> dotnet build
C:\dev\refit\InterfaceStubGenerator\InterfaceStubGenerator.csproj : warning NU1701: Package 'Nustache 1.16.0.4' was rest
ored using '.NETFramework,Version=v4.6.1' instead the project target framework '.NETCoreApp,Version=v2.0'. This may caus
e compatibility problems.
That is expected and something that was designed to happen as part of the move to AssetTargetFallback. It is telling you something true: the .NETFramework library pulled in by the .NETCoreApp project might not actually work at runtime on .NET Core.
There's a way to suppress this on the individual package reference, but I'm having trouble locating the syntax. @rrelyea, @emgarten, @terrajobst Are there docs for this that we can point folks to?
You can add a NoWarn to the PackageRef now like this:
<PackageReference Include="Nustache" Version="1.16.0.4" NoWarn="NU1701" />
Moved from https://github.com/dotnet/cli/issues/6829
Steps to reproduce
Try to build in VS 2017 15.3 with preview2 and today's nightly .NET Core 2 tooling:
Clone https://github.com/Reactive-Extensions/Rx.NET checkout develop Open Rx.NET/Source/System.Reactive.sln
This worked with the .NET Core 2 preview 1 tooling.
Expected behavior
Restore and build should work
Actual behavior
Environment data
dotnet --info
output: