diff options
author | Lluis Sanchez <llsan@microsoft.com> | 2017-09-14 18:26:16 +0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-09-14 18:26:16 +0300 |
commit | 46267973e22b371bd270e4c4ef65fbcf4e390970 (patch) | |
tree | fe29c5b463fdc99ca99dd25bc14da13625610d9c /main/src | |
parent | ebf74b29b87bb0785f003f67fc765ccc80dcb80e (diff) | |
parent | 842ffb8932aaaa9a2fed6e67d8597cfb716b9ec9 (diff) |
Merge pull request #3045 from mono/dotnetcore-reference-pcl-project
[DotNetCore] Allow PCL projects to be referenced
Diffstat (limited to 'main/src')
2 files changed, 28 insertions, 0 deletions
diff --git a/main/src/addins/MonoDevelop.DotNetCore/MonoDevelop.DotNetCore.Tests/MonoDevelop.DotNetCore.Tests/DotNetCoreProjectTests.cs b/main/src/addins/MonoDevelop.DotNetCore/MonoDevelop.DotNetCore.Tests/MonoDevelop.DotNetCore.Tests/DotNetCoreProjectTests.cs index 6722455f78..ed75ec4dd2 100644 --- a/main/src/addins/MonoDevelop.DotNetCore/MonoDevelop.DotNetCore.Tests/MonoDevelop.DotNetCore.Tests/DotNetCoreProjectTests.cs +++ b/main/src/addins/MonoDevelop.DotNetCore/MonoDevelop.DotNetCore.Tests/MonoDevelop.DotNetCore.Tests/DotNetCoreProjectTests.cs @@ -190,5 +190,30 @@ namespace MonoDevelop.DotNetCore.Tests Assert.IsNotNull (jsonNetReferenceLibB); Assert.IsNotNull (jsonNetReferenceLibC); } + + /// <summary> + /// Mirror Visual Studio on Windows behaviour where a .NET Standard project or a .NET Core + /// project can add a reference to any PCL project. + /// </summary> + [Test] + public async Task CanReference_PortableClassLibrary_FromNetStandardOrNetCoreAppProject () + { + string solutionFileName = Util.GetSampleProject ("dotnetcore-pcl", "dotnetcore-pcl.sln"); + var solution = (Solution) await Services.ProjectService.ReadWorkspaceItem (Util.GetMonitor (), solutionFileName); + var pclProject = solution.FindProjectByName ("PclProfile111") as DotNetProject; + var netStandardProject = solution.FindProjectByName ("NetStandard14") as DotNetProject; + var netCoreProject = solution.FindProjectByName ("NetCore11") as DotNetProject; + + string reason = null; + bool canReferenceFromNetStandard = netStandardProject.CanReferenceProject (pclProject, out reason); + bool canReferenceFromNetCore = netCoreProject.CanReferenceProject (pclProject, out reason); + bool canReferenceNetCoreFromNetStandard = netStandardProject.CanReferenceProject (netCoreProject, out reason); + bool canReferenceNetStandardFromNetCore = netCoreProject.CanReferenceProject (netStandardProject, out reason); + + Assert.IsTrue (canReferenceFromNetStandard); + Assert.IsTrue (canReferenceFromNetCore); + Assert.IsFalse (canReferenceNetCoreFromNetStandard); + Assert.IsTrue (canReferenceNetStandardFromNetCore); + } } }
\ No newline at end of file diff --git a/main/src/addins/MonoDevelop.DotNetCore/MonoDevelop.DotNetCore/DotNetCoreProjectExtension.cs b/main/src/addins/MonoDevelop.DotNetCore/MonoDevelop.DotNetCore/DotNetCoreProjectExtension.cs index c62b4595f5..b981c5f589 100644 --- a/main/src/addins/MonoDevelop.DotNetCore/MonoDevelop.DotNetCore/DotNetCoreProjectExtension.cs +++ b/main/src/addins/MonoDevelop.DotNetCore/MonoDevelop.DotNetCore/DotNetCoreProjectExtension.cs @@ -98,6 +98,9 @@ namespace MonoDevelop.DotNetCore bool CanReferenceProject (DotNetProject targetProject) { + if (targetProject.IsPortableLibrary) + return true; + if (!targetProject.TargetFramework.IsNetStandard ()) return false; |