Browse Source

Work on SD-1457: Added support for the Client Profile. The 3.5 and 4.0 client profiles can now be chosen as target frameworks.

Not yet implemented: creating/modifying the app.config to tell the .NET runtime which profile is required.
pull/1/head
Daniel Grunwald 16 years ago
parent
commit
58482b71ca
  1. 5
      data/templates/project/CSharp/ConsoleProject.xpt
  2. 8
      data/templates/project/CSharp/ControlLibrary.xpt
  3. 2
      data/templates/project/CSharp/EmptyProject.xpt
  4. 6
      data/templates/project/CSharp/FormsProject.xpt
  5. 6
      data/templates/project/CSharp/Library.xpt
  6. 6
      data/templates/project/CSharp/NotifyIcon.xpt
  7. 4
      data/templates/project/CSharp/Service.xpt
  8. 4
      data/templates/project/CSharp/SharpDevelopAddin.xpt
  9. 6
      data/templates/project/CSharp/SharpDevelopCustomTool.xpt
  10. 6
      data/templates/project/CSharp/SharpDevelopMacro.xpt
  11. 6
      data/templates/project/CSharp/WPFApplication.xpt
  12. 6
      data/templates/project/CSharp/WPFNavigationApplication.xpt
  13. 1
      data/templates/project/CSharp/WebpageProject.xpt
  14. 0
      data/templates/project/Misc/BlankSolution.xpt
  15. 6
      data/templates/project/VBNet/ConsoleProject.xpt
  16. 6
      data/templates/project/VBNet/ControlLibrary.xpt
  17. 2
      data/templates/project/VBNet/EmptyProject.xpt
  18. 6
      data/templates/project/VBNet/FormsProject.xpt
  19. 6
      data/templates/project/VBNet/Library.xpt
  20. 6
      data/templates/project/VBNet/Service.xpt
  21. 6
      data/templates/project/VBNet/SharpDevelopAddin.xpt
  22. 6
      data/templates/project/VBNet/SharpDevelopMacro.xpt
  23. 2
      src/AddIns/Analysis/UnitTesting/Test/Utils/MockCSharpProject.cs
  24. 6
      src/AddIns/BackendBindings/Boo/BooBinding/Project/Templates/ConsoleProject.xpt
  25. 6
      src/AddIns/BackendBindings/Boo/BooBinding/Project/Templates/FormsProject.xpt
  26. 6
      src/AddIns/BackendBindings/Boo/BooBinding/Project/Templates/Library.xpt
  27. 1
      src/AddIns/BackendBindings/CppBinding/CppBinding/Templates/ConsoleProject.xpt
  28. 1
      src/AddIns/BackendBindings/CppBinding/CppBinding/Templates/Library.xpt
  29. 4
      src/AddIns/BackendBindings/Python/PythonBinding/Project/Templates/WPFApplication.xpt
  30. 5
      src/AddIns/BackendBindings/Scripting/Test/Utils/MockProject.cs
  31. 44
      src/Main/Base/Project/Src/Gui/Dialogs/NewProjectDialog.Designer.cs
  32. 6
      src/Main/Base/Project/Src/Gui/Dialogs/NewProjectDialog.cs
  33. 4
      src/Main/Base/Project/Src/Gui/Dialogs/NewProjectDialog.resx
  34. 2
      src/Main/Base/Project/Src/Internal/Templates/Project/ProjectCreateInformation.cs
  35. 18
      src/Main/Base/Project/Src/Internal/Templates/Project/ProjectDescriptor.cs
  36. 4
      src/Main/Base/Project/Src/Project/AbstractProject.cs
  37. 115
      src/Main/Base/Project/Src/Project/CompilableProject.cs
  38. 2
      src/Main/Base/Project/Src/Project/Converter/UpgradeView.xaml
  39. 5
      src/Main/Base/Project/Src/Project/IProject.cs
  40. 18
      src/Main/Base/Project/Src/Project/TargetFramework.cs
  41. 5
      src/Main/Base/Test/StringTagProvider/MockProjectForTagProvider.cs
  42. 2
      src/Setup/Files.wxs

5
data/templates/project/CSharp/ConsoleProject.xpt

@ -8,7 +8,7 @@ @@ -8,7 +8,7 @@
<Subcategory>${res:Templates.File.Categories.WindowsApplications}</Subcategory>
<Icon>C#.Project.DOSProject</Icon>
<Description>${res:Templates.Project.ConsoleProject.Description}</Description>
<SupportedTargetFrameworks>v2.0</SupportedTargetFrameworks>
<SupportedTargetFrameworks>v2.0;v3.5Client</SupportedTargetFrameworks>
</TemplateConfiguration>
<!-- Actions -->
@ -18,9 +18,6 @@ @@ -18,9 +18,6 @@
<!-- Template Content -->
<Project language = "C#">
<CreateActions>
<RunCommand path = "/SharpDevelop/BackendBindings/TemplateCommands/AddDotNet35ReferencesIfTargetFrameworkIs35"/>
</CreateActions>
<ProjectItems>
<Reference Include="System" />
<Reference Include="System.Data" />

8
data/templates/project/CSharp/ControlLibrary.xpt

@ -10,7 +10,7 @@ @@ -10,7 +10,7 @@
<Subcategory>${res:Templates.File.Categories.WindowsApplications}</Subcategory>
<Icon>C#.Project.ControlLibrary</Icon>
<Description>${res:Templates.Project.UserControlLibrary.Description}</Description>
<SupportedTargetFrameworks>v2.0</SupportedTargetFrameworks>
<SupportedTargetFrameworks>v2.0;v3.5Client</SupportedTargetFrameworks>
</TemplateConfiguration>
<!-- Actions -->
@ -19,11 +19,7 @@ @@ -19,11 +19,7 @@
</Actions>
<Project language = "C#">
<CreateActions>
<RunCommand path = "/SharpDevelop/BackendBindings/TemplateCommands/AddDotNet35ReferencesIfTargetFrameworkIs35"/>
</CreateActions>
<ProjectItems>
<ProjectItems>
<Reference Include="System" />
<Reference Include="System.Data" />
<Reference Include="System.Drawing" />

2
data/templates/project/CSharp/EmptyProject.xpt

@ -9,7 +9,7 @@ @@ -9,7 +9,7 @@
<Category>C#</Category>
<Icon>C#.Project.EmptyProject</Icon>
<Description>${res:Templates.Project.EmptyProject.Description}</Description>
<SupportedTargetFrameworks>v2.0</SupportedTargetFrameworks>
<SupportedTargetFrameworks>v2.0;v3.5Client</SupportedTargetFrameworks>
</TemplateConfiguration>
<Project language = "C#">

6
data/templates/project/CSharp/FormsProject.xpt

@ -10,7 +10,7 @@ @@ -10,7 +10,7 @@
<Subcategory>${res:Templates.File.Categories.WindowsApplications}</Subcategory>
<Icon>C#.Project.Form</Icon>
<Description>${res:Templates.Project.WindowsApplication.Description}</Description>
<SupportedTargetFrameworks>v2.0</SupportedTargetFrameworks>
<SupportedTargetFrameworks>v2.0;v3.5Client</SupportedTargetFrameworks>
</TemplateConfiguration>
<!-- Actions -->
@ -19,10 +19,6 @@ @@ -19,10 +19,6 @@
</Actions>
<Project language = "C#">
<CreateActions>
<RunCommand path = "/SharpDevelop/BackendBindings/TemplateCommands/AddDotNet35ReferencesIfTargetFrameworkIs35"/>
</CreateActions>
<ProjectItems>
<Reference Include="System" />
<Reference Include="System.Data" />

6
data/templates/project/CSharp/Library.xpt

@ -7,7 +7,7 @@ @@ -7,7 +7,7 @@
<Category>C#</Category>
<Icon>C#.Project.Library</Icon>
<Description>${res:Templates.Project.ClassLibrary.Description}</Description>
<SupportedTargetFrameworks>v2.0</SupportedTargetFrameworks>
<SupportedTargetFrameworks>v2.0;v3.5Client</SupportedTargetFrameworks>
</TemplateConfiguration>
<!-- Actions -->
@ -17,10 +17,6 @@ @@ -17,10 +17,6 @@
<!-- Template Content -->
<Project language="C#">
<CreateActions>
<RunCommand path = "/SharpDevelop/BackendBindings/TemplateCommands/AddDotNet35ReferencesIfTargetFrameworkIs35"/>
</CreateActions>
<PropertyGroup>
<OutputType>Library</OutputType>
<AppDesignerFolder>Properties</AppDesignerFolder>

6
data/templates/project/CSharp/NotifyIcon.xpt

@ -10,7 +10,7 @@ @@ -10,7 +10,7 @@
<Subcategory>${res:Templates.File.Categories.WindowsApplications}</Subcategory>
<Icon>C#.Project.Form</Icon>
<Description>${res:Templates.Project.SysTrayIcon.Description}</Description>
<SupportedTargetFrameworks>v2.0</SupportedTargetFrameworks>
<SupportedTargetFrameworks>v2.0;v3.5Client</SupportedTargetFrameworks>
</TemplateConfiguration>
<!-- Actions -->
@ -19,10 +19,6 @@ @@ -19,10 +19,6 @@
</Actions>
<Project language="C#">
<CreateActions>
<RunCommand path = "/SharpDevelop/BackendBindings/TemplateCommands/AddDotNet35ReferencesIfTargetFrameworkIs35"/>
</CreateActions>
<ProjectItems>
<Reference Include="System" />
<Reference Include="System.Data" />

4
data/templates/project/CSharp/Service.xpt

@ -20,10 +20,6 @@ @@ -20,10 +20,6 @@
<!-- Template Content -->
<Project language = "C#">
<CreateActions>
<RunCommand path = "/SharpDevelop/BackendBindings/TemplateCommands/AddDotNet35ReferencesIfTargetFrameworkIs35"/>
</CreateActions>
<ProjectItems>
<Reference Include="System" />
<Reference Include="System.Configuration.Install" />

4
data/templates/project/CSharp/SharpDevelopAddin.xpt

@ -18,10 +18,6 @@ @@ -18,10 +18,6 @@
</Actions>
<Project language = "C#">
<CreateActions>
<RunCommand path = "/SharpDevelop/BackendBindings/TemplateCommands/AddDotNet35ReferencesIfTargetFrameworkIs35"/>
</CreateActions>
<ProjectItems>
<Reference Include="System" />
<Reference Include="System.Data" />

6
data/templates/project/CSharp/SharpDevelopCustomTool.xpt

@ -8,7 +8,7 @@ @@ -8,7 +8,7 @@
<Subcategory>SharpDevelop</Subcategory>
<Icon>C#.Project.ControlLibrary</Icon>
<Description>A custom tool that implements a code generator transforming a source file into an output file whenever the source is changed inside SharpDevelop</Description>
<SupportedTargetFrameworks>v2.0</SupportedTargetFrameworks>
<SupportedTargetFrameworks>v4.0</SupportedTargetFrameworks>
</TemplateConfiguration>
<!-- Actions -->
@ -18,10 +18,6 @@ @@ -18,10 +18,6 @@
</Actions>
<Project language="C#">
<CreateActions>
<RunCommand path = "/SharpDevelop/BackendBindings/TemplateCommands/AddDotNet35ReferencesIfTargetFrameworkIs35"/>
</CreateActions>
<ProjectItems>
<Reference Include="System" />
<Reference Include="System.Data" />

6
data/templates/project/CSharp/SharpDevelopMacro.xpt

@ -10,7 +10,7 @@ @@ -10,7 +10,7 @@
<Subcategory>SharpDevelop</Subcategory>
<Icon>C#.Project.ControlLibrary</Icon>
<Description>${res:Templates.Project.SharpDevelopMacro.Description}</Description>
<SupportedTargetFrameworks>v2.0</SupportedTargetFrameworks>
<SupportedTargetFrameworks>v4.0</SupportedTargetFrameworks>
</TemplateConfiguration>
<!-- Actions -->
@ -20,10 +20,6 @@ @@ -20,10 +20,6 @@
</Actions>
<Project language="C#">
<CreateActions>
<RunCommand path = "/SharpDevelop/BackendBindings/TemplateCommands/AddDotNet35ReferencesIfTargetFrameworkIs35"/>
</CreateActions>
<ProjectItems>
<Reference Include="System" />
<Reference Include="System.Data" />

6
data/templates/project/CSharp/WPFApplication.xpt

@ -8,7 +8,7 @@ @@ -8,7 +8,7 @@
<Subcategory>WPF</Subcategory>
<Icon>C#.Project.Form</Icon>
<Description>${res:Templates.Project.WinFXApplication.Description}</Description>
<SupportedTargetFrameworks>v3.0</SupportedTargetFrameworks>
<SupportedTargetFrameworks>v3.0;v3.5Client</SupportedTargetFrameworks>
</TemplateConfiguration>
<!-- Actions -->
@ -17,10 +17,6 @@ @@ -17,10 +17,6 @@
</Actions>
<Project language = "C#">
<CreateActions>
<RunCommand path = "/SharpDevelop/BackendBindings/TemplateCommands/AddDotNet35ReferencesIfTargetFrameworkIs35"/>
</CreateActions>
<ProjectItems>
<Reference Include="System" />
<Reference Include="System.Data" />

6
data/templates/project/CSharp/WPFNavigationApplication.xpt

@ -8,7 +8,7 @@ @@ -8,7 +8,7 @@
<Subcategory>WPF</Subcategory>
<Icon>C#.Project.Form</Icon>
<Description>${res:Templates.Project.WinFXNavigationApplication.Description}</Description>
<SupportedTargetFrameworks>v3.0</SupportedTargetFrameworks>
<SupportedTargetFrameworks>v3.0;v3.5Client</SupportedTargetFrameworks>
</TemplateConfiguration>
<!-- Actions -->
@ -17,10 +17,6 @@ @@ -17,10 +17,6 @@
</Actions>
<Project language = "C#">
<CreateActions>
<RunCommand path = "/SharpDevelop/BackendBindings/TemplateCommands/AddDotNet35ReferencesIfTargetFrameworkIs35"/>
</CreateActions>
<ProjectItems>
<Reference Include="System" />
<Reference Include="System.Data" />

1
data/templates/project/CSharp/WebpageProject.xpt

@ -10,6 +10,7 @@ @@ -10,6 +10,7 @@
<Subcategory>ASP.NET</Subcategory>
<Icon>C#.Project.Form</Icon>
<Description>${res:Templates.Project.WebPage.Description}</Description>
<SupportedTargetFrameworks>v2.0</SupportedTargetFrameworks>
</TemplateConfiguration>
<!-- Actions -->

0
data/templates/project/Misc/BlankCombine.xpt → data/templates/project/Misc/BlankSolution.xpt

6
data/templates/project/VBNet/ConsoleProject.xpt

@ -10,7 +10,7 @@ @@ -10,7 +10,7 @@
<Subcategory>${res:Templates.File.Categories.WindowsApplications}</Subcategory>
<Icon>VBNet.Project.DOSProject</Icon>
<Description>${res:Templates.Project.ConsoleProject.Description}</Description>
<SupportedTargetFrameworks>v2.0</SupportedTargetFrameworks>
<SupportedTargetFrameworks>v2.0;v3.5Client</SupportedTargetFrameworks>
</TemplateConfiguration>
<!-- Actions -->
@ -21,10 +21,6 @@ @@ -21,10 +21,6 @@
<!-- Template Content -->
<Project language = "VBNet">
<CreateActions>
<RunCommand path = "/SharpDevelop/BackendBindings/TemplateCommands/AddDotNet35ReferencesIfTargetFrameworkIs35"/>
</CreateActions>
<ProjectItems>
<Reference Include="System" />
<Reference Include="System.Data" />

6
data/templates/project/VBNet/ControlLibrary.xpt

@ -10,7 +10,7 @@ @@ -10,7 +10,7 @@
<Subcategory>${res:Templates.File.Categories.WindowsApplications}</Subcategory>
<Icon>VBNet.Project.ControlLibrary</Icon>
<Description>${res:Templates.Project.UserControlLibrary.Description}</Description>
<SupportedTargetFrameworks>v2.0</SupportedTargetFrameworks>
<SupportedTargetFrameworks>v2.0;v3.5Client</SupportedTargetFrameworks>
</TemplateConfiguration>
<!-- Actions -->
@ -19,10 +19,6 @@ @@ -19,10 +19,6 @@
</Actions>
<Project language = "VBNet">
<CreateActions>
<RunCommand path = "/SharpDevelop/BackendBindings/TemplateCommands/AddDotNet35ReferencesIfTargetFrameworkIs35"/>
</CreateActions>
<ProjectItems>
<Reference Include="System" />
<Reference Include="System.Data" />

2
data/templates/project/VBNet/EmptyProject.xpt

@ -9,7 +9,7 @@ @@ -9,7 +9,7 @@
<Category>VBNet</Category>
<Icon>VBNet.Project.EmptyProject</Icon>
<Description>${res:Templates.Project.EmptyProject.Description}</Description>
<SupportedTargetFrameworks>v2.0</SupportedTargetFrameworks>
<SupportedTargetFrameworks>v2.0;v3.5Client</SupportedTargetFrameworks>
</TemplateConfiguration>
<Project language = "VBNet">

6
data/templates/project/VBNet/FormsProject.xpt

@ -10,7 +10,7 @@ @@ -10,7 +10,7 @@
<Subcategory>${res:Templates.File.Categories.WindowsApplications}</Subcategory>
<Icon>VBNet.Project.Form</Icon>
<Description>${res:Templates.Project.WindowsApplication.Description}</Description>
<SupportedTargetFrameworks>v2.0</SupportedTargetFrameworks>
<SupportedTargetFrameworks>v2.0;v3.5Client</SupportedTargetFrameworks>
</TemplateConfiguration>
<!-- Actions -->
@ -20,10 +20,6 @@ @@ -20,10 +20,6 @@
<!-- Template Content -->
<Project language="VBNet">
<CreateActions>
<RunCommand path = "/SharpDevelop/BackendBindings/TemplateCommands/AddDotNet35ReferencesIfTargetFrameworkIs35"/>
</CreateActions>
<PropertyGroup>
<OutputType>WinExe</OutputType>
<AppDesignerFolder>Properties</AppDesignerFolder>

6
data/templates/project/VBNet/Library.xpt

@ -9,7 +9,7 @@ @@ -9,7 +9,7 @@
<Category>VBNet</Category>
<Icon>VBNet.Project.Library</Icon>
<Description>${res:Templates.Project.ClassLibrary.Description}</Description>
<SupportedTargetFrameworks>v2.0</SupportedTargetFrameworks>
<SupportedTargetFrameworks>v2.0;v3.5Client</SupportedTargetFrameworks>
</TemplateConfiguration>
<!-- Actions -->
@ -18,10 +18,6 @@ @@ -18,10 +18,6 @@
</Actions>
<Project language="VBNet">
<CreateActions>
<RunCommand path = "/SharpDevelop/BackendBindings/TemplateCommands/AddDotNet35ReferencesIfTargetFrameworkIs35"/>
</CreateActions>
<PropertyGroup>
<OutputType>Library</OutputType>
<AppDesignerFolder>Properties</AppDesignerFolder>

6
data/templates/project/VBNet/Service.xpt

@ -10,7 +10,7 @@ @@ -10,7 +10,7 @@
<Subcategory>${res:Templates.File.Categories.WindowsApplications}</Subcategory>
<Icon>VBNet.Project.ServiceProject</Icon>
<Description>${res:Templates.Project.WindowsService.Description}</Description>
<SupportedTargetFrameworks>v2.0</SupportedTargetFrameworks>
<SupportedTargetFrameworks>v2.0;v3.5Client</SupportedTargetFrameworks>
</TemplateConfiguration>
<!-- Actions -->
@ -19,10 +19,6 @@ @@ -19,10 +19,6 @@
</Actions>
<Project language="VBNet">
<CreateActions>
<RunCommand path = "/SharpDevelop/BackendBindings/TemplateCommands/AddDotNet35ReferencesIfTargetFrameworkIs35"/>
</CreateActions>
<PropertyGroup>
<OutputType>Exe</OutputType>
<AppDesignerFolder>Properties</AppDesignerFolder>

6
data/templates/project/VBNet/SharpDevelopAddin.xpt

@ -10,7 +10,7 @@ @@ -10,7 +10,7 @@
<Subcategory>SharpDevelop</Subcategory>
<Icon>VBNet.Project.ControlLibrary</Icon>
<Description>${res:Templates.Project.SharpDevelopAddin.Description}</Description>
<SupportedTargetFrameworks>v2.0</SupportedTargetFrameworks>
<SupportedTargetFrameworks>v4.0</SupportedTargetFrameworks>
</TemplateConfiguration>
<!-- Actions -->
@ -20,10 +20,6 @@ @@ -20,10 +20,6 @@
</Actions>
<Project language="VBNet">
<CreateActions>
<RunCommand path = "/SharpDevelop/BackendBindings/TemplateCommands/AddDotNet35ReferencesIfTargetFrameworkIs35"/>
</CreateActions>
<PropertyGroup>
<OutputType>Library</OutputType>
<OptionInfer>On</OptionInfer>

6
data/templates/project/VBNet/SharpDevelopMacro.xpt

@ -10,7 +10,7 @@ @@ -10,7 +10,7 @@
<Subcategory>SharpDevelop</Subcategory>
<Icon>VBNet.Project.ControlLibrary</Icon>
<Description>${res:Templates.Project.SharpDevelopMacro.Description}</Description>
<SupportedTargetFrameworks>v2.0</SupportedTargetFrameworks>
<SupportedTargetFrameworks>v4.0</SupportedTargetFrameworks>
</TemplateConfiguration>
<!-- Actions -->
@ -20,10 +20,6 @@ @@ -20,10 +20,6 @@
</Actions>
<Project language="VBNet">
<CreateActions>
<RunCommand path = "/SharpDevelop/BackendBindings/TemplateCommands/AddDotNet35ReferencesIfTargetFrameworkIs35"/>
</CreateActions>
<PropertyGroup>
<OutputType>Library</OutputType>
<OptionInfer>On</OptionInfer>

2
src/AddIns/Analysis/UnitTesting/Test/Utils/MockCSharpProject.cs

@ -21,7 +21,7 @@ namespace UnitTesting.Tests.Utils @@ -21,7 +21,7 @@ namespace UnitTesting.Tests.Utils
: base(new ProjectCreateInformation {
Solution = solution,
ProjectName = name,
TargetFramework = "v4.0",
TargetFramework = TargetFramework.Net40Client,
OutputProjectFileName = "c:\\projects\\" + name + "\\" + name + ".csproj"
})
{

6
src/AddIns/BackendBindings/Boo/BooBinding/Project/Templates/ConsoleProject.xpt

@ -5,7 +5,7 @@ @@ -5,7 +5,7 @@
<Category>Boo</Category>
<Icon>Boo.Project.EmptyProject</Icon>
<Description>${res:Templates.Project.ConsoleProject.Description}</Description>
<SupportedTargetFrameworks>v2.0</SupportedTargetFrameworks>
<SupportedTargetFrameworks>v2.0;v3.5Client</SupportedTargetFrameworks>
</TemplateConfiguration>
<!-- Actions -->
@ -15,10 +15,6 @@ @@ -15,10 +15,6 @@
<!-- Template Content -->
<Project language="Boo">
<CreateActions>
<RunCommand path = "/SharpDevelop/BackendBindings/TemplateCommands/AddDotNet35ReferencesIfTargetFrameworkIs35"/>
</CreateActions>
<PropertyGroup>
<OutputType>Exe</OutputType>
</PropertyGroup>

6
src/AddIns/BackendBindings/Boo/BooBinding/Project/Templates/FormsProject.xpt

@ -5,7 +5,7 @@ @@ -5,7 +5,7 @@
<Category>Boo</Category>
<Icon>Boo.Project.Form</Icon>
<Description>${res:Templates.Project.WindowsApplication.Description}</Description>
<SupportedTargetFrameworks>v2.0</SupportedTargetFrameworks>
<SupportedTargetFrameworks>v2.0;v3.5Client</SupportedTargetFrameworks>
</TemplateConfiguration>
<Actions>
@ -13,10 +13,6 @@ @@ -13,10 +13,6 @@
</Actions>
<Project language = "Boo">
<CreateActions>
<RunCommand path = "/SharpDevelop/BackendBindings/TemplateCommands/AddDotNet35ReferencesIfTargetFrameworkIs35"/>
</CreateActions>
<PropertyGroup>
<OutputType>WinExe</OutputType>
</PropertyGroup>

6
src/AddIns/BackendBindings/Boo/BooBinding/Project/Templates/Library.xpt

@ -5,7 +5,7 @@ @@ -5,7 +5,7 @@
<Category>Boo</Category>
<Icon>Boo.Project.EmptyProject</Icon>
<Description>${res:Templates.Project.ClassLibrary.Description}</Description>
<SupportedTargetFrameworks>v2.0</SupportedTargetFrameworks>
<SupportedTargetFrameworks>v2.0;v3.5Client</SupportedTargetFrameworks>
</TemplateConfiguration>
<Actions>
@ -13,10 +13,6 @@ @@ -13,10 +13,6 @@
</Actions>
<Project language = "Boo">
<CreateActions>
<RunCommand path = "/SharpDevelop/BackendBindings/TemplateCommands/AddDotNet35ReferencesIfTargetFrameworkIs35"/>
</CreateActions>
<PropertyGroup>
<OutputType>Library</OutputType>
</PropertyGroup>

1
src/AddIns/BackendBindings/CppBinding/CppBinding/Templates/ConsoleProject.xpt

@ -18,7 +18,6 @@ @@ -18,7 +18,6 @@
<!-- Template Content -->
<Project language = "C++">
<CreateActions>
<RunCommand path = "/SharpDevelop/BackendBindings/TemplateCommands/AddDotNet35ReferencesIfTargetFrameworkIs35" />
<RunCommand path = "/SharpDevelop/BackendBindings/TemplateCommands/SpecifyCppCliRuntimeLibrary" />
</CreateActions>
<ProjectItems>

1
src/AddIns/BackendBindings/CppBinding/CppBinding/Templates/Library.xpt

@ -19,7 +19,6 @@ @@ -19,7 +19,6 @@
<!-- Template Content -->
<Project language = "C++">
<CreateActions>
<RunCommand path = "/SharpDevelop/BackendBindings/TemplateCommands/AddDotNet35ReferencesIfTargetFrameworkIs35" />
<RunCommand path = "/SharpDevelop/BackendBindings/TemplateCommands/SpecifyCppCliRuntimeLibrary" />
</CreateActions>
<ProjectItems>

4
src/AddIns/BackendBindings/Python/PythonBinding/Project/Templates/WPFApplication.xpt

@ -15,10 +15,6 @@ @@ -15,10 +15,6 @@
<!-- Template Content -->
<Project language="Python">
<CreateActions>
<RunCommand path="/SharpDevelop/BackendBindings/TemplateCommands/AddDotNet35ReferencesIfTargetFrameworkIs35"/>
</CreateActions>
<PropertyGroup>
<OutputType>WinExe</OutputType>
<MainFile>Application.py</MainFile>

5
src/AddIns/BackendBindings/Scripting/Test/Utils/MockProject.cs

@ -294,6 +294,11 @@ namespace ICSharpCode.Scripting.Tests.Utils @@ -294,6 +294,11 @@ namespace ICSharpCode.Scripting.Tests.Utils
{
throw new NotImplementedException();
}
public void ProjectCreationComplete()
{
throw new NotImplementedException();
}
#endregion
}
}

44
src/Main/Base/Project/Src/Gui/Dialogs/NewProjectDialog.Designer.cs generated

@ -52,6 +52,7 @@ namespace ICSharpCode.SharpDevelop.Project.Dialogs @@ -52,6 +52,7 @@ namespace ICSharpCode.SharpDevelop.Project.Dialogs
this.nameTextBox = new System.Windows.Forms.TextBox();
this.label3 = new System.Windows.Forms.Label();
this.descriptionLabel = new System.Windows.Forms.Label();
((System.ComponentModel.ISupportInitialize)(this.splitContainer1)).BeginInit();
this.splitContainer1.Panel1.SuspendLayout();
this.splitContainer1.Panel2.SuspendLayout();
this.splitContainer1.SuspendLayout();
@ -76,8 +77,8 @@ namespace ICSharpCode.SharpDevelop.Project.Dialogs @@ -76,8 +77,8 @@ namespace ICSharpCode.SharpDevelop.Project.Dialogs
this.splitContainer1.Panel2.Controls.Add(this.smallIconsRadioButton);
this.splitContainer1.Panel2.Controls.Add(this.targetFrameworkComboBox);
this.splitContainer1.Panel2.Controls.Add(this.label2);
this.splitContainer1.Size = new System.Drawing.Size(576, 258);
this.splitContainer1.SplitterDistance = 190;
this.splitContainer1.Size = new System.Drawing.Size(587, 258);
this.splitContainer1.SplitterDistance = 193;
this.splitContainer1.TabIndex = 0;
//
// categoryTreeView
@ -88,7 +89,7 @@ namespace ICSharpCode.SharpDevelop.Project.Dialogs @@ -88,7 +89,7 @@ namespace ICSharpCode.SharpDevelop.Project.Dialogs
this.categoryTreeView.HideSelection = false;
this.categoryTreeView.Location = new System.Drawing.Point(3, 26);
this.categoryTreeView.Name = "categoryTreeView";
this.categoryTreeView.Size = new System.Drawing.Size(183, 232);
this.categoryTreeView.Size = new System.Drawing.Size(186, 232);
this.categoryTreeView.TabIndex = 1;
//
// label1
@ -97,7 +98,7 @@ namespace ICSharpCode.SharpDevelop.Project.Dialogs @@ -97,7 +98,7 @@ namespace ICSharpCode.SharpDevelop.Project.Dialogs
| System.Windows.Forms.AnchorStyles.Right)));
this.label1.Location = new System.Drawing.Point(3, 0);
this.label1.Name = "label1";
this.label1.Size = new System.Drawing.Size(183, 23);
this.label1.Size = new System.Drawing.Size(186, 23);
this.label1.TabIndex = 0;
this.label1.Text = "${res:Dialog.NewProject.ProjectTypeLabelText}";
this.label1.TextAlign = System.Drawing.ContentAlignment.BottomLeft;
@ -110,7 +111,7 @@ namespace ICSharpCode.SharpDevelop.Project.Dialogs @@ -110,7 +111,7 @@ namespace ICSharpCode.SharpDevelop.Project.Dialogs
this.templateListView.HideSelection = false;
this.templateListView.Location = new System.Drawing.Point(3, 26);
this.templateListView.Name = "templateListView";
this.templateListView.Size = new System.Drawing.Size(368, 232);
this.templateListView.Size = new System.Drawing.Size(376, 232);
this.templateListView.TabIndex = 4;
this.templateListView.UseCompatibleStateImageBehavior = false;
//
@ -118,7 +119,7 @@ namespace ICSharpCode.SharpDevelop.Project.Dialogs @@ -118,7 +119,7 @@ namespace ICSharpCode.SharpDevelop.Project.Dialogs
//
this.largeIconsRadioButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
this.largeIconsRadioButton.Appearance = System.Windows.Forms.Appearance.Button;
this.largeIconsRadioButton.Location = new System.Drawing.Point(349, 4);
this.largeIconsRadioButton.Location = new System.Drawing.Point(357, 4);
this.largeIconsRadioButton.Name = "largeIconsRadioButton";
this.largeIconsRadioButton.Size = new System.Drawing.Size(22, 22);
this.largeIconsRadioButton.TabIndex = 2;
@ -127,7 +128,7 @@ namespace ICSharpCode.SharpDevelop.Project.Dialogs @@ -127,7 +128,7 @@ namespace ICSharpCode.SharpDevelop.Project.Dialogs
//
this.smallIconsRadioButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
this.smallIconsRadioButton.Appearance = System.Windows.Forms.Appearance.Button;
this.smallIconsRadioButton.Location = new System.Drawing.Point(325, 4);
this.smallIconsRadioButton.Location = new System.Drawing.Point(333, 4);
this.smallIconsRadioButton.Name = "smallIconsRadioButton";
this.smallIconsRadioButton.Size = new System.Drawing.Size(22, 22);
this.smallIconsRadioButton.TabIndex = 1;
@ -136,9 +137,9 @@ namespace ICSharpCode.SharpDevelop.Project.Dialogs @@ -136,9 +137,9 @@ namespace ICSharpCode.SharpDevelop.Project.Dialogs
//
this.targetFrameworkComboBox.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
this.targetFrameworkComboBox.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
this.targetFrameworkComboBox.Location = new System.Drawing.Point(158, 3);
this.targetFrameworkComboBox.Location = new System.Drawing.Point(135, 3);
this.targetFrameworkComboBox.Name = "targetFrameworkComboBox";
this.targetFrameworkComboBox.Size = new System.Drawing.Size(161, 21);
this.targetFrameworkComboBox.Size = new System.Drawing.Size(192, 21);
this.targetFrameworkComboBox.TabIndex = 0;
this.targetFrameworkComboBox.SelectedIndexChanged += new System.EventHandler(this.TargetFrameworkComboBoxSelectedIndexChanged);
//
@ -148,7 +149,7 @@ namespace ICSharpCode.SharpDevelop.Project.Dialogs @@ -148,7 +149,7 @@ namespace ICSharpCode.SharpDevelop.Project.Dialogs
| System.Windows.Forms.AnchorStyles.Right)));
this.label2.Location = new System.Drawing.Point(3, 0);
this.label2.Name = "label2";
this.label2.Size = new System.Drawing.Size(149, 23);
this.label2.Size = new System.Drawing.Size(126, 23);
this.label2.TabIndex = 3;
this.label2.Text = "${res:Dialog.NewProject.TemplateLabelText}";
this.label2.TextAlign = System.Drawing.ContentAlignment.BottomLeft;
@ -170,14 +171,14 @@ namespace ICSharpCode.SharpDevelop.Project.Dialogs @@ -170,14 +171,14 @@ namespace ICSharpCode.SharpDevelop.Project.Dialogs
this.bottomPanel.Dock = System.Windows.Forms.DockStyle.Bottom;
this.bottomPanel.Location = new System.Drawing.Point(0, 258);
this.bottomPanel.Name = "bottomPanel";
this.bottomPanel.Size = new System.Drawing.Size(576, 167);
this.bottomPanel.Size = new System.Drawing.Size(587, 167);
this.bottomPanel.TabIndex = 1;
//
// cancelButton
//
this.cancelButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
this.cancelButton.DialogResult = System.Windows.Forms.DialogResult.Cancel;
this.cancelButton.Location = new System.Drawing.Point(484, 132);
this.cancelButton.Location = new System.Drawing.Point(495, 132);
this.cancelButton.Name = "cancelButton";
this.cancelButton.Size = new System.Drawing.Size(75, 23);
this.cancelButton.TabIndex = 11;
@ -187,7 +188,7 @@ namespace ICSharpCode.SharpDevelop.Project.Dialogs @@ -187,7 +188,7 @@ namespace ICSharpCode.SharpDevelop.Project.Dialogs
//
this.openButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
this.openButton.Enabled = false;
this.openButton.Location = new System.Drawing.Point(404, 132);
this.openButton.Location = new System.Drawing.Point(415, 132);
this.openButton.Name = "openButton";
this.openButton.Size = new System.Drawing.Size(75, 23);
this.openButton.TabIndex = 10;
@ -199,14 +200,14 @@ namespace ICSharpCode.SharpDevelop.Project.Dialogs @@ -199,14 +200,14 @@ namespace ICSharpCode.SharpDevelop.Project.Dialogs
| System.Windows.Forms.AnchorStyles.Right)));
this.createInLabel.Location = new System.Drawing.Point(9, 113);
this.createInLabel.Name = "createInLabel";
this.createInLabel.Size = new System.Drawing.Size(550, 21);
this.createInLabel.Size = new System.Drawing.Size(561, 21);
this.createInLabel.TabIndex = 9;
this.createInLabel.Text = "label6";
//
// createDirectoryForSolutionCheckBox
//
this.createDirectoryForSolutionCheckBox.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
this.createDirectoryForSolutionCheckBox.Location = new System.Drawing.Point(337, 88);
this.createDirectoryForSolutionCheckBox.Location = new System.Drawing.Point(348, 88);
this.createDirectoryForSolutionCheckBox.Name = "createDirectoryForSolutionCheckBox";
this.createDirectoryForSolutionCheckBox.Size = new System.Drawing.Size(222, 24);
this.createDirectoryForSolutionCheckBox.TabIndex = 8;
@ -216,7 +217,7 @@ namespace ICSharpCode.SharpDevelop.Project.Dialogs @@ -216,7 +217,7 @@ namespace ICSharpCode.SharpDevelop.Project.Dialogs
// browseButton
//
this.browseButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
this.browseButton.Location = new System.Drawing.Point(527, 62);
this.browseButton.Location = new System.Drawing.Point(538, 62);
this.browseButton.Name = "browseButton";
this.browseButton.Size = new System.Drawing.Size(32, 21);
this.browseButton.TabIndex = 5;
@ -228,7 +229,7 @@ namespace ICSharpCode.SharpDevelop.Project.Dialogs @@ -228,7 +229,7 @@ namespace ICSharpCode.SharpDevelop.Project.Dialogs
| System.Windows.Forms.AnchorStyles.Right)));
this.solutionNameTextBox.Location = new System.Drawing.Point(137, 90);
this.solutionNameTextBox.Name = "solutionNameTextBox";
this.solutionNameTextBox.Size = new System.Drawing.Size(194, 20);
this.solutionNameTextBox.Size = new System.Drawing.Size(205, 20);
this.solutionNameTextBox.TabIndex = 7;
//
// locationTextBox
@ -237,7 +238,7 @@ namespace ICSharpCode.SharpDevelop.Project.Dialogs @@ -237,7 +238,7 @@ namespace ICSharpCode.SharpDevelop.Project.Dialogs
| System.Windows.Forms.AnchorStyles.Right)));
this.locationTextBox.Location = new System.Drawing.Point(137, 62);
this.locationTextBox.Name = "locationTextBox";
this.locationTextBox.Size = new System.Drawing.Size(384, 20);
this.locationTextBox.Size = new System.Drawing.Size(395, 20);
this.locationTextBox.TabIndex = 4;
//
// solutionNameLabel
@ -264,7 +265,7 @@ namespace ICSharpCode.SharpDevelop.Project.Dialogs @@ -264,7 +265,7 @@ namespace ICSharpCode.SharpDevelop.Project.Dialogs
| System.Windows.Forms.AnchorStyles.Right)));
this.nameTextBox.Location = new System.Drawing.Point(137, 38);
this.nameTextBox.Name = "nameTextBox";
this.nameTextBox.Size = new System.Drawing.Size(384, 20);
this.nameTextBox.Size = new System.Drawing.Size(395, 20);
this.nameTextBox.TabIndex = 2;
this.nameTextBox.TextChanged += new System.EventHandler(this.NameTextBoxTextChanged);
//
@ -284,7 +285,7 @@ namespace ICSharpCode.SharpDevelop.Project.Dialogs @@ -284,7 +285,7 @@ namespace ICSharpCode.SharpDevelop.Project.Dialogs
this.descriptionLabel.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
this.descriptionLabel.Location = new System.Drawing.Point(3, 3);
this.descriptionLabel.Name = "descriptionLabel";
this.descriptionLabel.Size = new System.Drawing.Size(561, 23);
this.descriptionLabel.Size = new System.Drawing.Size(572, 23);
this.descriptionLabel.TabIndex = 0;
this.descriptionLabel.Text = "label3";
//
@ -294,7 +295,7 @@ namespace ICSharpCode.SharpDevelop.Project.Dialogs @@ -294,7 +295,7 @@ namespace ICSharpCode.SharpDevelop.Project.Dialogs
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.CancelButton = this.cancelButton;
this.ClientSize = new System.Drawing.Size(571, 425);
this.ClientSize = new System.Drawing.Size(587, 425);
this.Controls.Add(this.splitContainer1);
this.Controls.Add(this.bottomPanel);
this.MaximizeBox = false;
@ -306,6 +307,7 @@ namespace ICSharpCode.SharpDevelop.Project.Dialogs @@ -306,6 +307,7 @@ namespace ICSharpCode.SharpDevelop.Project.Dialogs
this.Text = "${res:Dialog.NewProject.DialogName}";
this.splitContainer1.Panel1.ResumeLayout(false);
this.splitContainer1.Panel2.ResumeLayout(false);
((System.ComponentModel.ISupportInitialize)(this.splitContainer1)).EndInit();
this.splitContainer1.ResumeLayout(false);
this.bottomPanel.ResumeLayout(false);
this.bottomPanel.PerformLayout();

6
src/Main/Base/Project/Src/Gui/Dialogs/NewProjectDialog.cs

@ -177,7 +177,7 @@ namespace ICSharpCode.SharpDevelop.Project.Dialogs @@ -177,7 +177,7 @@ namespace ICSharpCode.SharpDevelop.Project.Dialogs
if (targetFrameworkComboBox.Items.Count > 0) {
targetFrameworkComboBox.Visible = true;
targetFrameworkComboBox.SelectedIndex = 0;
string lastUsedTargetFramework = PropertyService.Get("Dialogs.NewProjectDialog.TargetFramework", TargetFramework.DefaultTargetFrameworkName);
string lastUsedTargetFramework = PropertyService.Get("Dialogs.NewProjectDialog.TargetFramework", TargetFramework.DefaultTargetFramework.Name);
for (int i = 0; i < targetFrameworkComboBox.Items.Count; i++) {
if (((TargetFramework)targetFrameworkComboBox.Items[i]).Name == lastUsedTargetFramework) {
targetFrameworkComboBox.SelectedIndex = i;
@ -337,8 +337,8 @@ namespace ICSharpCode.SharpDevelop.Project.Dialogs @@ -337,8 +337,8 @@ namespace ICSharpCode.SharpDevelop.Project.Dialogs
}
if (item.Template.HasSupportedTargetFrameworks) {
cinfo.TargetFramework = ((TargetFramework)targetFrameworkComboBox.SelectedItem).Name;
PropertyService.Set("Dialogs.NewProjectDialog.TargetFramework", cinfo.TargetFramework);
cinfo.TargetFramework = (TargetFramework)targetFrameworkComboBox.SelectedItem;
PropertyService.Set("Dialogs.NewProjectDialog.TargetFramework", cinfo.TargetFramework.Name);
}
cinfo.ProjectBasePath = NewProjectDirectory;

4
src/Main/Base/Project/Src/Gui/Dialogs/NewProjectDialog.resx

@ -112,9 +112,9 @@ @@ -112,9 +112,9 @@
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
</root>

2
src/Main/Base/Project/Src/Internal/Templates/Project/ProjectCreateInformation.cs

@ -35,7 +35,7 @@ namespace ICSharpCode.SharpDevelop.Internal.Templates @@ -35,7 +35,7 @@ namespace ICSharpCode.SharpDevelop.Internal.Templates
public string RootNamespace { get; set; }
public string SolutionPath { get; set; }
public string ProjectBasePath { get; set; }
public string TargetFramework { get; set; }
public TargetFramework TargetFramework { get; set; }
public Solution Solution { get; set; }
}
}

18
src/Main/Base/Project/Src/Internal/Templates/Project/ProjectDescriptor.cs

@ -156,10 +156,20 @@ namespace ICSharpCode.SharpDevelop.Internal.Templates @@ -156,10 +156,20 @@ namespace ICSharpCode.SharpDevelop.Internal.Templates
switch (el.Name) {
case "RunCommand":
if (el.HasAttribute("path")) {
ICommand command = (ICommand)AddInTree.BuildItem(el.GetAttribute("path"), null);
string path = el.GetAttribute("path");
#if DEBUG
ICommand command = (ICommand)AddInTree.BuildItem(path, null);
if (command == null)
throw new TemplateLoadException("Unknown create action " + path);
#endif
return project => {
command.Owner = project;
command.Run();
#if !DEBUG
ICommand command = (ICommand)AddInTree.BuildItem(path, null);
#endif
if (command != null) {
command.Owner = project;
command.Run();
}
};
} else {
ProjectTemplate.WarnAttributeMissing(el, "path");
@ -475,6 +485,8 @@ namespace ICSharpCode.SharpDevelop.Internal.Templates @@ -475,6 +485,8 @@ namespace ICSharpCode.SharpDevelop.Internal.Templates
RunCreateActions(project);
project.ProjectCreationComplete();
// Save project
project.Save();

4
src/Main/Base/Project/Src/Project/AbstractProject.cs

@ -544,5 +544,9 @@ namespace ICSharpCode.SharpDevelop.Project @@ -544,5 +544,9 @@ namespace ICSharpCode.SharpDevelop.Project
}
return projectOptions;
}
public virtual void ProjectCreationComplete()
{
}
}
}

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

@ -67,9 +67,12 @@ namespace ICSharpCode.SharpDevelop.Project @@ -67,9 +67,12 @@ namespace ICSharpCode.SharpDevelop.Project
this.RootNamespace = information.RootNamespace;
this.AssemblyName = information.ProjectName;
if (!string.IsNullOrEmpty(information.TargetFramework)) {
this.TargetFrameworkVersion = information.TargetFramework;
AddOrRemoveExtensions();
ClientProfileTargetFramework clientProfile = information.TargetFramework as ClientProfileTargetFramework;
if (clientProfile != null) {
SetProperty(null, null, "TargetFrameworkVersion", clientProfile.FullFramework.Name, PropertyStorageLocations.Base, true);
SetProperty(null, null, "TargetFrameworkProfile", "Client", PropertyStorageLocations.Base, true);
} else if (information.TargetFramework != null) {
SetProperty(null, null, "TargetFrameworkVersion", information.TargetFramework.Name, PropertyStorageLocations.Base, true);
}
SetProperty("Debug", null, "OutputPath", @"bin\Debug\",
@ -147,6 +150,12 @@ namespace ICSharpCode.SharpDevelop.Project @@ -147,6 +150,12 @@ namespace ICSharpCode.SharpDevelop.Project
set { SetProperty("TargetFrameworkVersion", value); }
}
[Browsable(false)]
public string TargetFrameworkProfile {
get { return GetEvaluatedProperty("TargetFrameworkProfile"); }
set { SetProperty("TargetFrameworkProfile", value); }
}
public override string AssemblyName {
get { return GetEvaluatedProperty("AssemblyName") ?? Name; }
set { SetProperty("AssemblyName", value); }
@ -412,14 +421,26 @@ namespace ICSharpCode.SharpDevelop.Project @@ -412,14 +421,26 @@ namespace ICSharpCode.SharpDevelop.Project
}
}
protected internal virtual void AddDotnet35References()
public override void ProjectCreationComplete()
{
TargetFramework fx = this.CurrentTargetFramework;
if (fx != null && (fx.IsBasedOn(TargetFramework.Net35) || fx.IsBasedOn(TargetFramework.Net35Client))) {
AddDotnet35References();
}
if (fx != null && (fx.IsBasedOn(TargetFramework.Net40) || fx.IsBasedOn(TargetFramework.Net40Client))) {
AddDotnet40References();
}
base.ProjectCreationComplete();
}
protected virtual void AddDotnet35References()
{
AddReferenceIfNotExists("System.Core", "3.5");
if (GetItemsOfType(ItemType.Reference).Any(r => r.Include == "System.Data")) {
if (GetItemsOfType(ItemType.Reference).Any(r => string.Equals(r.Include, "System.Data", StringComparison.OrdinalIgnoreCase))) {
AddReferenceIfNotExists("System.Data.DataSetExtensions", "3.5");
}
if (GetItemsOfType(ItemType.Reference).Any(r => r.Include == "System.Xml")) {
if (GetItemsOfType(ItemType.Reference).Any(r => string.Equals(r.Include, "System.Xml", StringComparison.OrdinalIgnoreCase))) {
AddReferenceIfNotExists("System.Xml.Linq", "3.5");
}
}
@ -432,9 +453,9 @@ namespace ICSharpCode.SharpDevelop.Project @@ -432,9 +453,9 @@ namespace ICSharpCode.SharpDevelop.Project
RemoveReference("System.Xml.Linq");
}
protected internal virtual void AddDotnet40References()
protected virtual void AddDotnet40References()
{
if (GetItemsOfType(ItemType.Reference).Any(r => r.Include == "WindowsBase")) {
if (GetItemsOfType(ItemType.Reference).Any(r => string.Equals(r.Include, "WindowsBase", StringComparison.OrdinalIgnoreCase))) {
AddReferenceIfNotExists("System.Xaml", "4.0");
}
}
@ -446,7 +467,7 @@ namespace ICSharpCode.SharpDevelop.Project @@ -446,7 +467,7 @@ namespace ICSharpCode.SharpDevelop.Project
void AddReferenceIfNotExists(string name, string requiredTargetFramework)
{
if (!(GetItemsOfType(ItemType.Reference).Any(r => r.Include == name))) {
if (!(GetItemsOfType(ItemType.Reference).Any(r => string.Equals(r.Include, name, StringComparison.OrdinalIgnoreCase)))) {
ReferenceProjectItem rpi = new ReferenceProjectItem(this, name);
if (requiredTargetFramework != null)
rpi.SetMetadata("RequiredTargetFramework", requiredTargetFramework);
@ -456,12 +477,12 @@ namespace ICSharpCode.SharpDevelop.Project @@ -456,12 +477,12 @@ namespace ICSharpCode.SharpDevelop.Project
void RemoveReference(string name)
{
ProjectItem reference = GetItemsOfType(ItemType.Reference).FirstOrDefault(r => r.Include == name);
ProjectItem reference = GetItemsOfType(ItemType.Reference).FirstOrDefault(r => string.Equals(r.Include, name, StringComparison.OrdinalIgnoreCase));
if (reference != null)
ProjectService.RemoveProjectItem(this, reference);
}
protected internal virtual void AddOrRemoveExtensions()
protected virtual void AddOrRemoveExtensions()
{
}
@ -496,9 +517,16 @@ namespace ICSharpCode.SharpDevelop.Project @@ -496,9 +517,16 @@ namespace ICSharpCode.SharpDevelop.Project
public virtual TargetFramework CurrentTargetFramework {
get {
string fxVersion = this.TargetFrameworkVersion;
foreach (TargetFramework fx in TargetFramework.TargetFrameworks)
if (fx.Name == fxVersion)
return fx;
string fxProfile = this.TargetFrameworkProfile;
if (string.Equals(fxProfile, "Client", StringComparison.OrdinalIgnoreCase)) {
foreach (ClientProfileTargetFramework fx in TargetFramework.TargetFrameworks.OfType<ClientProfileTargetFramework>())
if (fx.FullFramework.Name == fxVersion)
return fx;
} else {
foreach (TargetFramework fx in TargetFramework.TargetFrameworks)
if (fx.Name == fxVersion)
return fx;
}
return null;
}
}
@ -517,7 +545,18 @@ namespace ICSharpCode.SharpDevelop.Project @@ -517,7 +545,18 @@ namespace ICSharpCode.SharpDevelop.Project
SetToolsVersion(newVersion.MSBuildVersion.Major + "." + newVersion.MSBuildVersion.Minor);
}
if (newFramework != null) {
ClientProfileTargetFramework clientProfile = newFramework as ClientProfileTargetFramework;
if (clientProfile != null) {
newFramework = clientProfile.FullFramework;
SetProperty(null, null, "TargetFrameworkProfile", "Client", PropertyStorageLocations.Base, true);
} else {
SetProperty(null, null, "TargetFrameworkProfile", "", PropertyStorageLocations.Base, true);
}
SetProperty(null, null, "TargetFrameworkVersion", newFramework.Name, PropertyStorageLocations.Base, true);
if (oldFramework is ClientProfileTargetFramework)
oldFramework = ((ClientProfileTargetFramework)oldFramework).FullFramework;
if (oldFramework != null && !oldFramework.IsBasedOn(TargetFramework.Net35) && newFramework.IsBasedOn(TargetFramework.Net35))
AddDotnet35References();
else if (oldFramework != null && oldFramework.IsBasedOn(TargetFramework.Net35) && !newFramework.IsBasedOn(TargetFramework.Net35))
@ -528,36 +567,6 @@ namespace ICSharpCode.SharpDevelop.Project @@ -528,36 +567,6 @@ namespace ICSharpCode.SharpDevelop.Project
else if (oldFramework != null && oldFramework.IsBasedOn(TargetFramework.Net40) && !newFramework.IsBasedOn(TargetFramework.Net40))
RemoveDotnet40References();
}
/*
var winFxImport = MSBuildProject.Imports.Cast<Microsoft.Build.BuildEngine.Import>()
.Where(import => !import.IsImported)
.FirstOrDefault(import => string.Equals(import.ProjectPath, "$(MSBuildBinPath)\\Microsoft.WinFX.targets", StringComparison.OrdinalIgnoreCase));
if (winFxImport != null) {
MSBuildProject.Imports.RemoveImport(winFxImport);
}
if (!changeTargetFrameworkToNet40) {
foreach (string config in ConfigurationNames) {
foreach (string platform in PlatformNames) {
PropertyStorageLocations loc;
string targetFrameworkVersion = GetProperty(config, platform, "TargetFrameworkVersion", out loc);
if (string.IsNullOrEmpty(targetFrameworkVersion))
targetFrameworkVersion = "v2.0";
switch (targetFrameworkVersion) {
case "CF 1.0":
targetFrameworkVersion = "CF 2.0";
break;
case "v1.0":
case "v1.1":
targetFrameworkVersion = "v2.0";
break;
}
if (targetFrameworkVersion == "v2.0" && winFxImport != null)
targetFrameworkVersion = "v3.0";
SetProperty(config, platform, "TargetFrameworkVersion", targetFrameworkVersion, loc, true);
}
}
}
*/
AddOrRemoveExtensions();
Save();
}
@ -565,22 +574,4 @@ namespace ICSharpCode.SharpDevelop.Project @@ -565,22 +574,4 @@ namespace ICSharpCode.SharpDevelop.Project
}
#endregion
}
namespace Commands
{
public class AddDotNet35ReferencesIfTargetFrameworkIs35Command : AbstractCommand
{
public override void Run()
{
CompilableProject project = (CompilableProject)Owner;
TargetFramework fx = project.CurrentTargetFramework;
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/Converter/UpgradeView.xaml

@ -82,7 +82,7 @@ @@ -82,7 +82,7 @@
<ColumnDefinition
Width="Auto" />
<ColumnDefinition
Width="160" />
Width="210" />
</Grid.ColumnDefinitions>
<Label
Content="Convert selected _projects to:"

5
src/Main/Base/Project/Src/Project/IProject.cs

@ -252,6 +252,11 @@ namespace ICSharpCode.SharpDevelop.Project @@ -252,6 +252,11 @@ namespace ICSharpCode.SharpDevelop.Project
/// This method is thread safe.
/// </summary>
void ResolveAssemblyReferences();
/// <summary>
/// Notifies the project that it was succesfully created from a project template.
/// </summary>
void ProjectCreationComplete();
}
/// <summary>

18
src/Main/Base/Project/Src/Project/TargetFramework.cs

@ -10,13 +10,15 @@ namespace ICSharpCode.SharpDevelop.Project @@ -10,13 +10,15 @@ namespace ICSharpCode.SharpDevelop.Project
public readonly static TargetFramework Net20 = new TargetFramework("v2.0", ".NET Framework 2.0") { MinimumMSBuildVersion = new Version(2, 0) };
public readonly static TargetFramework Net30 = new TargetFramework("v3.0", ".NET Framework 3.0") { BasedOn = Net20, MinimumMSBuildVersion = new Version(3, 5) };
public readonly static TargetFramework Net35 = new TargetFramework("v3.5", ".NET Framework 3.5") { BasedOn = Net30, MinimumMSBuildVersion = new Version(3, 5) };
public readonly static TargetFramework Net35Client = new ClientProfileTargetFramework(Net35);
public readonly static TargetFramework Net40 = new TargetFramework("v4.0", ".NET Framework 4.0") { BasedOn = Net35, MinimumMSBuildVersion = new Version(4, 0) };
public readonly static TargetFramework Net40Client = new ClientProfileTargetFramework(Net40) { BasedOn = Net35Client };
public readonly static TargetFramework[] TargetFrameworks = {
Net40, Net35, Net30, Net20
Net40, Net35, Net30, Net20, Net40Client, Net35Client
};
public const string DefaultTargetFrameworkName = "v4.0";
public readonly static TargetFramework DefaultTargetFramework = Net40Client;
public static TargetFramework GetByName(string name)
{
@ -62,4 +64,16 @@ namespace ICSharpCode.SharpDevelop.Project @@ -62,4 +64,16 @@ namespace ICSharpCode.SharpDevelop.Project
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.MinimumMSBuildVersion = fullFramework.MinimumMSBuildVersion;
}
}
}

5
src/Main/Base/Test/StringTagProvider/MockProjectForTagProvider.cs

@ -275,5 +275,10 @@ namespace ICSharpCode.SharpDevelop.Tests.StringTagProvider @@ -275,5 +275,10 @@ namespace ICSharpCode.SharpDevelop.Tests.StringTagProvider
{
throw new NotImplementedException();
}
public void ProjectCreationComplete()
{
throw new NotImplementedException();
}
}
}

2
src/Setup/Files.wxs

@ -800,7 +800,7 @@ @@ -800,7 +800,7 @@
</Directory>
<Directory Id="MiscProjectTemplatesFolder" Name="Misc">
<Component Guid="F9A7F832-6EC8-4B15-A037-146BD028C9D5" Id="MiscProjectTemplates" DiskId="1">
<File Source="..\..\data\templates\project\Misc\BlankCombine.xpt" Id="BlankCombine.xpt" Name="BlankCombine.xpt" />
<File Source="..\..\data\templates\project\Misc\BlankSolution.xpt" Id="BlankSolution.xpt" Name="BlankSolution.xpt" />
</Component>
</Directory>
<Directory Id="VBNetProjectTemplatesFolder" Name="VBNet">

Loading…
Cancel
Save