Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mono/monodevelop.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/main/src
diff options
context:
space:
mode:
authorLluis Sanchez <llsan@microsoft.com>2017-09-14 18:26:16 +0300
committerGitHub <noreply@github.com>2017-09-14 18:26:16 +0300
commit46267973e22b371bd270e4c4ef65fbcf4e390970 (patch)
treefe29c5b463fdc99ca99dd25bc14da13625610d9c /main/src
parentebf74b29b87bb0785f003f67fc765ccc80dcb80e (diff)
parent842ffb8932aaaa9a2fed6e67d8597cfb716b9ec9 (diff)
Merge pull request #3045 from mono/dotnetcore-reference-pcl-project
[DotNetCore] Allow PCL projects to be referenced
Diffstat (limited to 'main/src')
-rw-r--r--main/src/addins/MonoDevelop.DotNetCore/MonoDevelop.DotNetCore.Tests/MonoDevelop.DotNetCore.Tests/DotNetCoreProjectTests.cs25
-rw-r--r--main/src/addins/MonoDevelop.DotNetCore/MonoDevelop.DotNetCore/DotNetCoreProjectExtension.cs3
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;