diff --git a/doc/Dependencies.html b/doc/Dependencies.html
index 651804098e..6a6fda7484 100644
--- a/doc/Dependencies.html
+++ b/doc/Dependencies.html
@@ -10,7 +10,7 @@
-
- Microsoft .NET Framework 4.5.1 Developer Pack for .NET 4.5 code completion documentation
+ Microsoft .NET Framework 4.5.2 Developer Pack for .NET 4.5 code completion documentation
-
Microsoft Windows SDK for Windows 7 and .NET Framework 4 (strongly recommended!)
@@ -47,6 +47,10 @@
Target platform |
Reference Assemblies |
+
+ .NET Framework 4.5.2 |
+ Microsoft .NET Framework 4.5.2 Developer Pack |
+
.NET Framework 4.5.1 |
Microsoft .NET Framework 4.5.1 Developer Pack |
diff --git a/src/Main/Base/Project/ICSharpCode.SharpDevelop.addin b/src/Main/Base/Project/ICSharpCode.SharpDevelop.addin
index d618fc53c8..ce7d1a6f95 100755
--- a/src/Main/Base/Project/ICSharpCode.SharpDevelop.addin
+++ b/src/Main/Base/Project/ICSharpCode.SharpDevelop.addin
@@ -2451,5 +2451,6 @@
+
diff --git a/src/Main/Base/Project/Project/TargetFrameworks/TargetFramework.cs b/src/Main/Base/Project/Project/TargetFrameworks/TargetFramework.cs
index 04ee558b53..33db017853 100644
--- a/src/Main/Base/Project/Project/TargetFrameworks/TargetFramework.cs
+++ b/src/Main/Base/Project/Project/TargetFrameworks/TargetFramework.cs
@@ -37,6 +37,7 @@ namespace ICSharpCode.SharpDevelop.Project
public static readonly TargetFramework Net40Client = new DotNet4xClient(Versions.V4_0, RedistLists.Net40Client, DotnetDetection.IsDotnet40Installed);
public static readonly TargetFramework Net45 = new DotNet4x(Versions.V4_5, RedistLists.Net45, DotnetDetection.IsDotnet45Installed);
public static readonly TargetFramework Net451 = new DotNet4x(Versions.V4_5_1, RedistLists.Net45, DotnetDetection.IsDotnet451Installed);
+ public static readonly TargetFramework Net452 = new DotNet4x(Versions.V4_5_2, RedistLists.Net45, DotnetDetection.IsDotnet452Installed);
///
/// Retrieves a target framework by a 'name'.
@@ -230,163 +231,4 @@ namespace ICSharpCode.SharpDevelop.Project
return DisplayName;
}
}
-
- /*
- public class TargetFramework
- {
- public readonly static TargetFramework Net20 = new TargetFramework("v2.0", ".NET Framework 2.0") {
- SupportedRuntimeVersion = "v2.0.50727",
- MinimumMSBuildVersion = new Version(2, 0),
- // .NET 2.0/3.0/3.5 can only be used if .NET 3.5 SP1 is installed
- IsAvailable = DotnetDetection.IsDotnet35SP1Installed
- };
- public readonly static TargetFramework Net30 = new TargetFramework("v3.0", ".NET Framework 3.0") {
- SupportedRuntimeVersion = "v2.0.50727",
- BasedOn = Net20,
- MinimumMSBuildVersion = new Version(3, 5)
- };
- public readonly static TargetFramework Net35 = new TargetFramework("v3.5", ".NET Framework 3.5") {
- SupportedRuntimeVersion = "v2.0.50727",
- BasedOn = Net30,
- MinimumMSBuildVersion = new Version(3, 5)
- };
- public readonly static TargetFramework Net35Client = new ClientProfileTargetFramework(Net35) {
- RequiresAppConfigEntry = true
- };
- public readonly static TargetFramework Net40 = new TargetFramework("v4.0", ".NET Framework 4.0") {
- BasedOn = Net35,
- MinimumMSBuildVersion = new Version(4, 0),
- SupportedSku = ".NETFramework,Version=v4.0",
- RequiresAppConfigEntry = true,
- IsAvailable = DotnetDetection.IsDotnet40Installed
- };
- public readonly static TargetFramework Net40Client = new ClientProfileTargetFramework(Net40) {
- BasedOn = Net35Client
- };
- public readonly static TargetFramework Net45 = new TargetFramework("v4.5", ".NET Framework 4.5") {
- BasedOn = Net40,
- MinimumMSBuildVersion = new Version(4, 0),
- SupportedRuntimeVersion = "v4.0",
- SupportedSku = ".NETFramework,Version=v4.5",
- RequiresAppConfigEntry = true,
- IsAvailable = DotnetDetection.IsDotnet45Installed
- };
- public readonly static TargetFramework Net451 = new TargetFramework("v4.5.1", ".NET Framework 4.5.1") {
- BasedOn = Net45,
- MinimumMSBuildVersion = new Version(4, 0),
- SupportedRuntimeVersion = "v4.0",
- SupportedSku = ".NETFramework,Version=v4.5.1",
- RequiresAppConfigEntry = true,
- IsAvailable = DotnetDetection.IsDotnet451Installed
- };
-
- public readonly static TargetFramework[] TargetFrameworks = {
- Net451, Net45, Net40, Net40Client, Net35, Net35Client, Net30, Net20
- };
-
- public readonly static TargetFramework DefaultTargetFramework = Net40Client;
-
- public static TargetFramework GetByName(string name)
- {
- foreach (TargetFramework tf in TargetFrameworks) {
- if (tf.Name == name)
- return tf;
- }
- throw new ArgumentException("No target framework '" + name + "' exists");
- }
-
- string name, displayName;
-
- public TargetFramework(string name, string displayName)
- {
- this.name = name;
- this.displayName = displayName;
- this.SupportedRuntimeVersion = name;
- this.IsAvailable = delegate {
- if (this.BasedOn != null)
- return this.BasedOn.IsAvailable();
- else
- return true;
- };
- }
-
- public string Name {
- get { return name; }
- }
-
- public string DisplayName {
- get { return displayName; }
- }
-
- ///
- /// Function that determines if this target framework is available.
- ///
- public Func IsAvailable { get; set; }
-
- ///
- /// Supported runtime version string for app.config
- ///
- public string SupportedRuntimeVersion { get; set; }
-
- ///
- /// Supported SKU string for app.config.
- ///
- public string SupportedSku { get; set; }
-
- ///
- /// Specifies whether this target framework requires an explicit app.config entry.
- ///
- public bool RequiresAppConfigEntry { get; set; }
-
- ///
- /// Gets the minimum MSBuild version required to build projects with this target framework.
- ///
- public Version MinimumMSBuildVersion { get; set; }
-
- ///
- /// Gets the previous release of this target framework.
- ///
- public TargetFramework BasedOn { get; set; }
-
- public virtual bool IsCompatibleWith(CompilerVersion compilerVersion)
- {
- return MinimumMSBuildVersion <= compilerVersion.MSBuildVersion;
- }
-
- public bool IsBasedOn(TargetFramework potentialBase)
- {
- TargetFramework tmp = this;
- while (tmp != null) {
- if (tmp == potentialBase)
- return true;
- tmp = tmp.BasedOn;
- }
- return false;
- }
-
- public override string ToString()
- {
- return DisplayName;
- }
-
-
- }
-
- public class ClientProfileTargetFramework : TargetFramework
- {
- public TargetFramework FullFramework { get; private set; }
-
- public ClientProfileTargetFramework(TargetFramework fullFramework)
- : base(fullFramework.Name + "Client", fullFramework.DisplayName + " Client Profile")
- {
- this.FullFramework = fullFramework;
- this.SupportedRuntimeVersion = fullFramework.SupportedRuntimeVersion;
- this.MinimumMSBuildVersion = fullFramework.MinimumMSBuildVersion;
- this.IsAvailable = fullFramework.IsAvailable;
- if (fullFramework.SupportedSku != null)
- this.SupportedSku = fullFramework.SupportedSku + ",Profile=Client";
- else
- this.SupportedSku = "Client";
- }
- }*/
}
diff --git a/src/Main/Base/Project/Util/DotnetDetection.cs b/src/Main/Base/Project/Util/DotnetDetection.cs
index 9298d9ab52..330de85294 100644
--- a/src/Main/Base/Project/Util/DotnetDetection.cs
+++ b/src/Main/Base/Project/Util/DotnetDetection.cs
@@ -61,6 +61,12 @@ namespace ICSharpCode.SharpDevelop
return GetDotnet4Release() >= 378675;
}
+ public static bool IsDotnet452Installed()
+ {
+ // 379893 is .NET 4.5.2 on my Win7 machine
+ return GetDotnet4Release() >= 379893;
+ }
+
static int? GetDotnet4Release()
{
using (var key = Registry.LocalMachine.OpenSubKey(@"SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full")) {
diff --git a/src/Main/Base/Project/Util/Versions.cs b/src/Main/Base/Project/Util/Versions.cs
index a5ed80a069..e0a751b365 100644
--- a/src/Main/Base/Project/Util/Versions.cs
+++ b/src/Main/Base/Project/Util/Versions.cs
@@ -31,5 +31,6 @@ namespace ICSharpCode.SharpDevelop
public static readonly Version V4_0 = new Version(4, 0);
public static readonly Version V4_5 = new Version(4, 5);
public static readonly Version V4_5_1 = new Version(4, 5, 1);
+ public static readonly Version V4_5_2 = new Version(4, 5, 2);
}
}
diff --git a/src/Main/SharpDevelop/Parser/AssemblyParserService.cs b/src/Main/SharpDevelop/Parser/AssemblyParserService.cs
index 2c999d1e72..0c864e2e7f 100644
--- a/src/Main/SharpDevelop/Parser/AssemblyParserService.cs
+++ b/src/Main/SharpDevelop/Parser/AssemblyParserService.cs
@@ -235,7 +235,8 @@ namespace ICSharpCode.SharpDevelop.Parser
break;
case TargetRuntime.Net_4_0:
default:
- xmlFileName = LookupLocalizedXmlDoc(Path.Combine(referenceAssembliesPath, @".NETFramework\v4.5.1", name))
+ xmlFileName = LookupLocalizedXmlDoc(Path.Combine(referenceAssembliesPath, @".NETFramework\v4.5.2", name))
+ ?? LookupLocalizedXmlDoc(Path.Combine(referenceAssembliesPath, @".NETFramework\v4.5.1", name))
?? LookupLocalizedXmlDoc(Path.Combine(referenceAssembliesPath, @".NETFramework\v4.5", name))
?? LookupLocalizedXmlDoc(Path.Combine(referenceAssembliesPath, @".NETFramework\v4.0", name))
?? LookupLocalizedXmlDoc(Path.Combine(frameworkPath, "v4.0.30319", name));