From 540d71f6b6fc3aefc435eb93727499cd6d101e39 Mon Sep 17 00:00:00 2001 From: Daniel Plaisted Date: Tue, 26 Sep 2017 15:11:03 -0700 Subject: [PATCH 1/5] Revert "Update support libraries to those that are only lib." --- build/DependencyVersions.props | 2 +- ....NET.Build.Extensions.NETFramework.targets | 20 +++++++++++++++---- ...antToBuildADesktopExeWtihNetStandardLib.cs | 2 +- 3 files changed, 18 insertions(+), 6 deletions(-) diff --git a/build/DependencyVersions.props b/build/DependencyVersions.props index e3f7b5973029..b6b195e44d97 100644 --- a/build/DependencyVersions.props +++ b/build/DependencyVersions.props @@ -13,7 +13,7 @@ 4.4.0-preview3-4475 9.0.1 1.4.2 - 2.0.1-servicing-25708-01 + 2.0.0-preview2-25405-01 0.2.0-beta-000042 diff --git a/src/Tasks/Microsoft.NET.Build.Extensions.Tasks/msbuildExtensions/Microsoft/Microsoft.NET.Build.Extensions/Microsoft.NET.Build.Extensions.NETFramework.targets b/src/Tasks/Microsoft.NET.Build.Extensions.Tasks/msbuildExtensions/Microsoft/Microsoft.NET.Build.Extensions/Microsoft.NET.Build.Extensions.NETFramework.targets index 2162e3cc9b5f..d9d8e3f6f72e 100644 --- a/src/Tasks/Microsoft.NET.Build.Extensions.Tasks/msbuildExtensions/Microsoft/Microsoft.NET.Build.Extensions/Microsoft.NET.Build.Extensions.NETFramework.targets +++ b/src/Tasks/Microsoft.NET.Build.Extensions.Tasks/msbuildExtensions/Microsoft/Microsoft.NET.Build.Extensions/Microsoft.NET.Build.Extensions.NETFramework.targets @@ -59,6 +59,15 @@ Copyright (c) .NET Foundation. All rights reserved. + <_NETStandardLibraryNETFrameworkReference Condition="'$(_TargetFrameworkVersionWithoutV)' >= '4.7'" + Include="$(MSBuildThisFileDirectory)\net47\ref\*.dll" /> + <_NETStandardLibraryNETFrameworkReference Condition="'$(_TargetFrameworkVersionWithoutV)' >= '4.6.2'" + Include="$(MSBuildThisFileDirectory)\net462\ref\*.dll" + Exclude="@(_NETStandardLibraryNETFrameworkReference->'$(MSBuildThisFileDirectory)\net462\ref\%(FileName).dll')" /> + <_NETStandardLibraryNETFrameworkReference Condition="'$(_TargetFrameworkVersionWithoutV)' >= '4.6.1'" + Include="$(MSBuildThisFileDirectory)\net461\ref\*.dll" + Exclude="@(_NETStandardLibraryNETFrameworkReference->'$(MSBuildThisFileDirectory)\net461\ref\%(FileName).dll')" /> + <_NETStandardLibraryNETFrameworkLib Condition="'$(_TargetFrameworkVersionWithoutV)' >= '4.7'" Include="$(MSBuildThisFileDirectory)\net47\lib\*.dll" /> <_NETStandardLibraryNETFrameworkLib Condition="'$(_TargetFrameworkVersionWithoutV)' >= '4.6.2'" @@ -74,12 +83,15 @@ Copyright (c) .NET Foundation. All rights reserved. Simple references can also come from NuGet framework assemblies, hence this statement should occur after including all computed references, thus this target is scheduled after references have been raised by NuGet targets. --> - + - - - false + + false + + + false + diff --git a/test/Microsoft.NET.Build.Tests/GivenThatWeWantToBuildADesktopExeWtihNetStandardLib.cs b/test/Microsoft.NET.Build.Tests/GivenThatWeWantToBuildADesktopExeWtihNetStandardLib.cs index 37d09f36166a..7b8c17a8e245 100644 --- a/test/Microsoft.NET.Build.Tests/GivenThatWeWantToBuildADesktopExeWtihNetStandardLib.cs +++ b/test/Microsoft.NET.Build.Tests/GivenThatWeWantToBuildADesktopExeWtihNetStandardLib.cs @@ -287,7 +287,7 @@ public void It_does_not_include_netstandard_when_inbox(bool isSdk) // Add a target that replaces the facade folder with the set of netstandard support assemblies // this can be replaced by targeting the version of .NETFramework that includes netstandard inbox, // once available - var facadesDir = Path.Combine(RepoInfo.BuildExtensionsMSBuildPath, "net461", "lib\\"); + var facadesDir = Path.Combine(RepoInfo.BuildExtensionsMSBuildPath, "net461", "ref\\"); var ns = project.Root.Name.Namespace; var target = new XElement(ns + "Target", new XAttribute("Name", "ReplaceDesignTimeFacadeDirectories"), From c2cf28963e2ae26c2a18cea29e35ea003ffebdb6 Mon Sep 17 00:00:00 2001 From: Daniel Plaisted Date: Tue, 26 Sep 2017 22:40:21 -0700 Subject: [PATCH 2/5] Update preserve compilation context test to use correct method of bringing in .NET Standard facades --- ...atWeWantToPreserveCompilationContextForBuild.cs | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/test/Microsoft.NET.Build.Tests/GivenThatWeWantToPreserveCompilationContextForBuild.cs b/test/Microsoft.NET.Build.Tests/GivenThatWeWantToPreserveCompilationContextForBuild.cs index c3cfd9d4b5c4..37a163b7c6d6 100644 --- a/test/Microsoft.NET.Build.Tests/GivenThatWeWantToPreserveCompilationContextForBuild.cs +++ b/test/Microsoft.NET.Build.Tests/GivenThatWeWantToPreserveCompilationContextForBuild.cs @@ -33,7 +33,16 @@ public void It_supports_copylocal_false_references() }; testProject.AdditionalProperties.Add("PreserveCompilationContext", "true"); - testProject.PackageReferences.Add(new TestPackageReference("NETStandard.Library.NETFramework", "2.0.0-preview2-25330-01", null)); + + var testReference = new TestProject() + { + Name = "NetStandardLibrary", + TargetFrameworks = "netstandard2.0", + IsSdkProject = true, + IsExe = false + }; + + testProject.ReferencedProjects.Add(testReference); var testAsset = _testAssetsManager.CreateTestProject(testProject) .Restore(Log, testProject.Name); @@ -59,7 +68,8 @@ public void It_supports_copylocal_false_references() .Select(a => a.Split('/').Last()) .ToList(); - compileLibraryAssemblyNames.Should().BeEquivalentTo(Net461CompileAssemblies); + compileLibraryAssemblyNames.Should().BeEquivalentTo( + Net461CompileAssemblies.Concat(new[] { testReference.Name + ".dll" })); } } From 589e651732a98ff113da53d77475a043905a79b7 Mon Sep 17 00:00:00 2001 From: Daniel Plaisted Date: Tue, 26 Sep 2017 22:41:17 -0700 Subject: [PATCH 3/5] Revert "Revert "Update support libraries to those that are only lib."" This reverts commit 3a584748d3e887688be871f6e568654499a397e3. --- build/DependencyVersions.props | 2 +- ....NET.Build.Extensions.NETFramework.targets | 20 ++++--------------- ...antToBuildADesktopExeWtihNetStandardLib.cs | 2 +- 3 files changed, 6 insertions(+), 18 deletions(-) diff --git a/build/DependencyVersions.props b/build/DependencyVersions.props index b6b195e44d97..e3f7b5973029 100644 --- a/build/DependencyVersions.props +++ b/build/DependencyVersions.props @@ -13,7 +13,7 @@ 4.4.0-preview3-4475 9.0.1 1.4.2 - 2.0.0-preview2-25405-01 + 2.0.1-servicing-25708-01 0.2.0-beta-000042 diff --git a/src/Tasks/Microsoft.NET.Build.Extensions.Tasks/msbuildExtensions/Microsoft/Microsoft.NET.Build.Extensions/Microsoft.NET.Build.Extensions.NETFramework.targets b/src/Tasks/Microsoft.NET.Build.Extensions.Tasks/msbuildExtensions/Microsoft/Microsoft.NET.Build.Extensions/Microsoft.NET.Build.Extensions.NETFramework.targets index d9d8e3f6f72e..2162e3cc9b5f 100644 --- a/src/Tasks/Microsoft.NET.Build.Extensions.Tasks/msbuildExtensions/Microsoft/Microsoft.NET.Build.Extensions/Microsoft.NET.Build.Extensions.NETFramework.targets +++ b/src/Tasks/Microsoft.NET.Build.Extensions.Tasks/msbuildExtensions/Microsoft/Microsoft.NET.Build.Extensions/Microsoft.NET.Build.Extensions.NETFramework.targets @@ -59,15 +59,6 @@ Copyright (c) .NET Foundation. All rights reserved. - <_NETStandardLibraryNETFrameworkReference Condition="'$(_TargetFrameworkVersionWithoutV)' >= '4.7'" - Include="$(MSBuildThisFileDirectory)\net47\ref\*.dll" /> - <_NETStandardLibraryNETFrameworkReference Condition="'$(_TargetFrameworkVersionWithoutV)' >= '4.6.2'" - Include="$(MSBuildThisFileDirectory)\net462\ref\*.dll" - Exclude="@(_NETStandardLibraryNETFrameworkReference->'$(MSBuildThisFileDirectory)\net462\ref\%(FileName).dll')" /> - <_NETStandardLibraryNETFrameworkReference Condition="'$(_TargetFrameworkVersionWithoutV)' >= '4.6.1'" - Include="$(MSBuildThisFileDirectory)\net461\ref\*.dll" - Exclude="@(_NETStandardLibraryNETFrameworkReference->'$(MSBuildThisFileDirectory)\net461\ref\%(FileName).dll')" /> - <_NETStandardLibraryNETFrameworkLib Condition="'$(_TargetFrameworkVersionWithoutV)' >= '4.7'" Include="$(MSBuildThisFileDirectory)\net47\lib\*.dll" /> <_NETStandardLibraryNETFrameworkLib Condition="'$(_TargetFrameworkVersionWithoutV)' >= '4.6.2'" @@ -83,15 +74,12 @@ Copyright (c) .NET Foundation. All rights reserved. Simple references can also come from NuGet framework assemblies, hence this statement should occur after including all computed references, thus this target is scheduled after references have been raised by NuGet targets. --> - + - - false + + + false - - - false - diff --git a/test/Microsoft.NET.Build.Tests/GivenThatWeWantToBuildADesktopExeWtihNetStandardLib.cs b/test/Microsoft.NET.Build.Tests/GivenThatWeWantToBuildADesktopExeWtihNetStandardLib.cs index 7b8c17a8e245..37d09f36166a 100644 --- a/test/Microsoft.NET.Build.Tests/GivenThatWeWantToBuildADesktopExeWtihNetStandardLib.cs +++ b/test/Microsoft.NET.Build.Tests/GivenThatWeWantToBuildADesktopExeWtihNetStandardLib.cs @@ -287,7 +287,7 @@ public void It_does_not_include_netstandard_when_inbox(bool isSdk) // Add a target that replaces the facade folder with the set of netstandard support assemblies // this can be replaced by targeting the version of .NETFramework that includes netstandard inbox, // once available - var facadesDir = Path.Combine(RepoInfo.BuildExtensionsMSBuildPath, "net461", "ref\\"); + var facadesDir = Path.Combine(RepoInfo.BuildExtensionsMSBuildPath, "net461", "lib\\"); var ns = project.Root.Name.Namespace; var target = new XElement(ns + "Target", new XAttribute("Name", "ReplaceDesignTimeFacadeDirectories"), From 5b9260ca141bc654c0d69aa47b95b2e21bfaf853 Mon Sep 17 00:00:00 2001 From: Daniel Plaisted Date: Wed, 27 Sep 2017 07:37:06 -0700 Subject: [PATCH 4/5] Provide .NET Standard facades as seperate lists of ref and runtime assemblies --- ...Microsoft.NET.Build.Extensions.NETFramework.targets | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/src/Tasks/Microsoft.NET.Build.Extensions.Tasks/msbuildExtensions/Microsoft/Microsoft.NET.Build.Extensions/Microsoft.NET.Build.Extensions.NETFramework.targets b/src/Tasks/Microsoft.NET.Build.Extensions.Tasks/msbuildExtensions/Microsoft/Microsoft.NET.Build.Extensions/Microsoft.NET.Build.Extensions.NETFramework.targets index 2162e3cc9b5f..e56db3bca6ff 100644 --- a/src/Tasks/Microsoft.NET.Build.Extensions.Tasks/msbuildExtensions/Microsoft/Microsoft.NET.Build.Extensions/Microsoft.NET.Build.Extensions.NETFramework.targets +++ b/src/Tasks/Microsoft.NET.Build.Extensions.Tasks/msbuildExtensions/Microsoft/Microsoft.NET.Build.Extensions/Microsoft.NET.Build.Extensions.NETFramework.targets @@ -76,10 +76,14 @@ Copyright (c) .NET Foundation. All rights reserved. targets. --> - - - false + + %(_NETStandardLibraryNETFrameworkLib.Identity) + false + + + false + From e8ed8cfb45401ee07aea861d533af99c9bfb9c2a Mon Sep 17 00:00:00 2001 From: Daniel Plaisted Date: Wed, 27 Sep 2017 12:08:30 -0700 Subject: [PATCH 5/5] Add comments explaining .NET Standard facade injection --- ...oft.NET.Build.Extensions.NETFramework.targets | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/src/Tasks/Microsoft.NET.Build.Extensions.Tasks/msbuildExtensions/Microsoft/Microsoft.NET.Build.Extensions/Microsoft.NET.Build.Extensions.NETFramework.targets b/src/Tasks/Microsoft.NET.Build.Extensions.Tasks/msbuildExtensions/Microsoft/Microsoft.NET.Build.Extensions/Microsoft.NET.Build.Extensions.NETFramework.targets index e56db3bca6ff..0fc3d006215e 100644 --- a/src/Tasks/Microsoft.NET.Build.Extensions.Tasks/msbuildExtensions/Microsoft/Microsoft.NET.Build.Extensions/Microsoft.NET.Build.Extensions.NETFramework.targets +++ b/src/Tasks/Microsoft.NET.Build.Extensions.Tasks/msbuildExtensions/Microsoft/Microsoft.NET.Build.Extensions/Microsoft.NET.Build.Extensions.NETFramework.targets @@ -76,11 +76,25 @@ Copyright (c) .NET Foundation. All rights reserved. targets. --> + + %(_NETStandardLibraryNETFrameworkLib.Identity) false - + false