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
diff options
context:
space:
mode:
authorMikayla Hutchinson <m.j.hutchinson@gmail.com>2016-09-22 01:56:43 +0300
committerMikayla Hutchinson <m.j.hutchinson@gmail.com>2016-09-22 01:56:43 +0300
commit95e0245efb4018a57b554082b1d082f6b96a7908 (patch)
tree5c155a632ed2758f90f031d0939cdfdf76232117 /main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Projects.OptionPanels
parent2c14102561f7b5c14cd45ca72c865fa1c82689cc (diff)
[netstandard] Auto-reference PCL compat library
For netstandard projects to be able to reference a PCL, they need to reference Microsoft.NETCore.Portable.Compatibility, but it's not obvious, so add it by default.
Diffstat (limited to 'main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Projects.OptionPanels')
-rw-r--r--main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Projects.OptionPanels/PortableRuntimeOptionsPanel.cs22
1 files changed, 18 insertions, 4 deletions
diff --git a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Projects.OptionPanels/PortableRuntimeOptionsPanel.cs b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Projects.OptionPanels/PortableRuntimeOptionsPanel.cs
index e2d7fd974c..a194bb88bc 100644
--- a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Projects.OptionPanels/PortableRuntimeOptionsPanel.cs
+++ b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Projects.OptionPanels/PortableRuntimeOptionsPanel.cs
@@ -82,6 +82,8 @@ namespace MonoDevelop.Ide.Projects.OptionPanels
const string NetStandardPackageName = "NETStandard.Library";
const string NetStandardPackageVersion = "1.6.0";
const string NetStandardDefaultFramework = "netstandard1.3";
+ const string NetStandardPclCompatPackageName = "Microsoft.NETCore.Portable.Compatibility";
+ const string NetStandardPclCompatPackageVersion = "1.0.1";
ComboBox netStandardCombo;
Entry targetFrameworkEntry;
@@ -314,16 +316,17 @@ namespace MonoDevelop.Ide.Projects.OptionPanels
json ["dependencies"] = deps;
}
- var existingRefVersion = deps.Property (NetStandardPackageName)?.Value?.Value<string> ();
- string newRefVersion = EnsureMinimumVersion (NetStandardPackageVersion, existingRefVersion);
- if (existingRefVersion != newRefVersion) {
- deps [NetStandardPackageName] = newRefVersion;
+ //make sure NETStandard.Library has the version we need
+ if (EnsurePackageHasVersion (deps, NetStandardPackageName, NetStandardPackageVersion)) {
+ //if we had to fix that, also add to optional Microsoft.NETCore.Portable.Compatibility
+ EnsurePackageHasVersion (deps, NetStandardPclCompatPackageName, NetStandardPclCompatPackageVersion);
changed = true;
}
} else {
//not netstandard, remove the netstandard nuget package ref
if (deps != null) {
deps.Property (NetStandardPackageName)?.Remove ();
+ deps.Property (NetStandardPclCompatPackageName)?.Remove ();
}
}
@@ -350,6 +353,17 @@ namespace MonoDevelop.Ide.Projects.OptionPanels
}
}
+ static bool EnsurePackageHasVersion (JObject dependencies, string packageName, string version)
+ {
+ var existingRefVersion = dependencies.Property (packageName)?.Value?.Value<string> ();
+ string newRefVersion = EnsureMinimumVersion (version, existingRefVersion);
+ if (existingRefVersion != newRefVersion) {
+ dependencies [packageName] = newRefVersion;
+ return true;
+ }
+ return false;
+ }
+
static ProjectFile MigrateToProjectJson (DotNetProject project)
{
var projectJsonName = project.BaseDirectory.Combine ("project.json");