Browse Source

Add reference to System.Xaml when upgrading WPF projects.

git-svn-id: svn://svn.sharpdevelop.net/sharpdevelop/trunk@5186 1ccf3a8d-04fe-1044-b7c0-cef0b8235c61
shortcuts
Daniel Grunwald 16 years ago
parent
commit
16bc1e5b15
  1. 37
      src/Main/Base/Project/Src/Project/CompilableProject.cs
  2. 2
      src/Main/Base/Project/Src/Project/Solution/Solution.cs

37
src/Main/Base/Project/Src/Project/CompilableProject.cs

@ -421,6 +421,26 @@ namespace ICSharpCode.SharpDevelop.Project @@ -421,6 +421,26 @@ namespace ICSharpCode.SharpDevelop.Project
}
}
protected virtual void RemoveDotnet35References()
{
// undo "AddDotnet35References"
RemoveReference("System.Core");
RemoveReference("System.Data.DataSetExtensions");
RemoveReference("System.Xml.Linq");
}
protected internal virtual void AddDotnet40References()
{
if (GetItemsOfType(ItemType.Reference).Any(r => r.Include == "WindowsBase")) {
AddReferenceIfNotExists("System.Xaml", "4.0");
}
}
protected virtual void RemoveDotnet40References()
{
RemoveReference("System.Xaml");
}
void AddReferenceIfNotExists(string name, string requiredTargetFramework)
{
if (!(GetItemsOfType(ItemType.Reference).Any(r => r.Include == name))) {
@ -431,6 +451,13 @@ namespace ICSharpCode.SharpDevelop.Project @@ -431,6 +451,13 @@ namespace ICSharpCode.SharpDevelop.Project
}
}
void RemoveReference(string name)
{
ProjectItem reference = GetItemsOfType(ItemType.Reference).FirstOrDefault(r => r.Include == name);
if (reference != null)
ProjectService.RemoveProjectItem(this, reference);
}
protected internal virtual void AddOrRemoveExtensions()
{
}
@ -489,6 +516,13 @@ namespace ICSharpCode.SharpDevelop.Project @@ -489,6 +516,13 @@ namespace ICSharpCode.SharpDevelop.Project
SetProperty(null, null, "TargetFrameworkVersion", newFramework.Name, PropertyStorageLocations.Base, true);
if (oldFramework != null && !oldFramework.IsBasedOn(TargetFramework.Net35) && newFramework.IsBasedOn(TargetFramework.Net35))
AddDotnet35References();
else if (oldFramework != null && oldFramework.IsBasedOn(TargetFramework.Net35) && !newFramework.IsBasedOn(TargetFramework.Net35))
RemoveDotnet35References();
if (oldFramework != null && !oldFramework.IsBasedOn(TargetFramework.Net40) && newFramework.IsBasedOn(TargetFramework.Net40))
AddDotnet40References();
else if (oldFramework != null && oldFramework.IsBasedOn(TargetFramework.Net40) && !newFramework.IsBasedOn(TargetFramework.Net40))
RemoveDotnet40References();
}
/*
var winFxImport = MSBuildProject.Imports.Cast<Microsoft.Build.BuildEngine.Import>()
@ -539,6 +573,9 @@ namespace ICSharpCode.SharpDevelop.Project @@ -539,6 +573,9 @@ namespace ICSharpCode.SharpDevelop.Project
if (fx != null && fx.IsBasedOn(TargetFramework.Net35)) {
project.AddDotnet35References();
}
if (fx != null && fx.IsBasedOn(TargetFramework.Net40)) {
project.AddDotnet40References();
}
}
}
}

2
src/Main/Base/Project/Src/Project/Solution/Solution.cs

@ -396,7 +396,7 @@ namespace ICSharpCode.SharpDevelop.Project @@ -396,7 +396,7 @@ namespace ICSharpCode.SharpDevelop.Project
} else if (versionNumber == SolutionVersionVS2008) {
sw.WriteLine("# Visual Studio 2008");
} else if (versionNumber == SolutionVersionVS2010) {
sw.WriteLine("# Visual Studio 10");
sw.WriteLine("# Visual Studio 2010");
}
sw.WriteLine("# SharpDevelop " + RevisionClass.FullVersion);
sw.Write(projectSection.ToString());

Loading…
Cancel
Save