Browse Source

Add "CopyLocalWorkaround" to build. (part of fix for SD2-1670 - Allow compiling .NET 4 projects without having the .NET 4 SDK installed)

git-svn-id: svn://svn.sharpdevelop.net/sharpdevelop/trunk@5814 1ccf3a8d-04fe-1044-b7c0-cef0b8235c61
pull/1/head
Daniel Grunwald 16 years ago
parent
commit
25b828694b
  1. 67
      src/Libraries/ICSharpCode.Build.Tasks/Project/CopyLocalWorkaround.cs
  2. 15
      src/Libraries/ICSharpCode.Build.Tasks/Project/ICSharpCode.Build.Tasks.csproj
  3. 182
      src/Libraries/ICSharpCode.Build.Tasks/Project/KnownFrameworkAssemblies.cs
  4. 19
      src/Libraries/ICSharpCode.Build.Tasks/Project/SharpDevelop.TargetingPack.targets
  5. 3
      src/Main/Base/Project/ICSharpCode.SharpDevelop.csproj
  6. 160
      src/Main/Base/Project/Src/Gui/Dialogs/ReferenceDialog/GacReferencePanel.cs
  7. 14
      src/Main/Base/Project/Src/Project/MSBuildEngine/MSBuildEngine.cs
  8. 61
      src/Main/Base/Project/Src/Services/File/RecentOpen.cs

67
src/Libraries/ICSharpCode.Build.Tasks/Project/CopyLocalWorkaround.cs

@ -0,0 +1,67 @@ @@ -0,0 +1,67 @@
// <file>
// <copyright see="prj:///doc/copyright.txt"/>
// <license see="prj:///doc/license.txt"/>
// <author name="Daniel Grunwald"/>
// <version>$Revision$</version>
// </file>
using System;
using System.Collections.Generic;
using Microsoft.Build.Framework;
using Microsoft.Build.Utilities;
namespace ICSharpCode.Build.Tasks
{
/// <summary>
/// When compiling an AnyCPU project targeting .NET 4 without having the SDK/targeting pack installed,
/// MSBuild incorrectly assumes "Copy local" for a number of assemblies.
/// </summary>
public class CopyLocalWorkaround : Task
{
public ITaskItem[] Assemblies { get; set; }
[Output]
public ITaskItem[] OutputAssemblies { get; set; }
public ITaskItem[] AssemblyFiles { get; set; }
[Output]
public ITaskItem[] OutputAssemblyFiles { get; set; }
public override bool Execute()
{
// mark known assemblies as copy local=false
List<ITaskItem> outputAssemblies = new List<ITaskItem>();
foreach (ITaskItem item in this.Assemblies) {
if (string.IsNullOrEmpty(item.GetMetadata("Private"))) {
string assemblyName = item.ItemSpec;
foreach (string knownAssembly in KnownFrameworkAssemblies.FullAssemblyNames) {
if (knownAssembly.StartsWith(assemblyName, StringComparison.OrdinalIgnoreCase)) {
if (assemblyName.IndexOf(',') >= 0 || knownAssembly.IndexOf(',') == assemblyName.Length) {
// either matching full name, or matching short name
item.SetMetadata("Private", "False");
outputAssemblies.Add(item);
break;
}
}
}
}
}
this.OutputAssemblies = outputAssemblies.ToArray();
// mark mscorlib as copy local=false
List<ITaskItem> outputAssemblyFiles = new List<ITaskItem>();
foreach (ITaskItem item in this.AssemblyFiles) {
if (string.IsNullOrEmpty(item.GetMetadata("Private"))) {
if (item.ItemSpec.EndsWith("\\mscorlib.dll", StringComparison.OrdinalIgnoreCase)) {
item.SetMetadata("Private", "False");
outputAssemblyFiles.Add(item);
}
}
}
this.OutputAssemblyFiles = outputAssemblyFiles.ToArray();
return true;
}
}
}

15
src/Libraries/ICSharpCode.Build.Tasks/Project/ICSharpCode.Build.Tasks.csproj

@ -48,33 +48,38 @@ @@ -48,33 +48,38 @@
</ItemGroup>
<ItemGroup>
<Compile Include="AssemblyInfo.cs" />
<Compile Include="CopyLocalWorkaround.cs" />
<Compile Include="ILAsm.cs" />
<None Include="SharpDevelop.Build.MSIL.targets">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="SharpDevelop.Build.Common.targets">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<Compile Include="Constants.cs" />
<Compile Include="KnownFrameworkAssemblies.cs" />
<Compile Include="MyToolTask.cs" />
<Compile Include="..\..\..\Main\GlobalAssemblyInfo.cs">
<Link>GlobalAssemblyInfo.cs</Link>
</Compile>
<None Include="SharpDevelop.Build.VisualBasic.targets">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="SharpDevelop.CheckMSBuild35Features.targets">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<Compile Include="FxCop.cs" />
<Compile Include="Resources.cs" />
<Content Include="SharpDevelop.TargetingPack.targets">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
</ItemGroup>
<ItemGroup>
<Content Include="SharpDevelop.Build.CSharp.targets">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
<Content Include="SharpDevelop.CodeAnalysis.targets">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
</ItemGroup>
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.Targets" />

182
src/Libraries/ICSharpCode.Build.Tasks/Project/KnownFrameworkAssemblies.cs

@ -0,0 +1,182 @@ @@ -0,0 +1,182 @@
// <file>
// <copyright see="prj:///doc/copyright.txt"/>
// <license see="prj:///doc/license.txt"/>
// <author name="Daniel Grunwald"/>
// <version>$Revision$</version>
// </file>
using System;
using System.Collections.Generic;
using System.IO;
namespace ICSharpCode.Build.Tasks
{
/// <summary>
/// Contains a list of .NET assemblies.
/// </summary>
static class KnownFrameworkAssemblies
{
// This table was generated using the code in SharpDevelop\src\Main\Base\Project\Src\Gui\Dialogs\ReferenceDialog\GacReferencePanel.cs
readonly static Dictionary<string, string> fullAssemblyNameToRequiredFrameworkVersionDictionary = new Dictionary<string, string> {
{ "PresentationCore, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35", "3.0" },
{ "System.Printing, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35", "3.0" },
{ "Microsoft.Build.Conversion.v3.5, Version=3.5.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a", "3.5" },
{ "Microsoft.Build.Engine, Version=3.5.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a", "3.5" },
{ "Microsoft.Build.Framework, Version=3.5.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a", "3.5" },
{ "Microsoft.Build.Tasks.v3.5, Version=3.5.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a", "3.5" },
{ "Microsoft.Build.Utilities.v3.5, Version=3.5.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a", "3.5" },
{ "Microsoft.VisualC.STLCLR, Version=1.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a", "3.5" },
{ "PresentationBuildTasks, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35", "3.0" },
{ "PresentationCFFRasterizer, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35", "3.0" },
{ "PresentationFramework, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35", "3.0" },
{ "PresentationFramework.Aero, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35", "3.0" },
{ "PresentationFramework.Classic, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35", "3.0" },
{ "PresentationFramework.Luna, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35", "3.0" },
{ "PresentationFramework.Royale, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35", "3.0" },
{ "PresentationUI, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35", "3.0" },
{ "ReachFramework, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35", "3.0" },
{ "Sentinel.v3.5Client, Version=3.5.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a", "3.5" },
{ "System.AddIn, Version=3.5.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089", "3.5" },
{ "System.AddIn.Contract, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a", "3.5" },
{ "System.Core, Version=3.5.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089", "3.5" },
{ "System.ComponentModel.DataAnnotations, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35", "3.5" },
{ "System.Data.DataSetExtensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089", "3.5" },
{ "System.Data.Entity, Version=3.5.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089", "3.5" },
{ "System.Data.Entity.Design, Version=3.5.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089", "3.5" },
{ "System.Data.Linq, Version=3.5.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089", "3.5" },
{ "System.Data.Services, Version=3.5.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089", "3.5" },
{ "System.Data.Services.Client, Version=3.5.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089", "3.5" },
{ "System.Data.Services.Design, Version=3.5.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089", "3.5" },
{ "System.DirectoryServices.AccountManagement, Version=3.5.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089", "3.5" },
{ "System.IdentityModel, Version=3.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089", "3.0" },
{ "System.IdentityModel.Selectors, Version=3.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089", "3.0" },
{ "System.IO.Log, Version=3.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a", "3.0" },
{ "System.Management.Instrumentation, Version=3.5.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089", "3.5" },
{ "System.Net, Version=3.5.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a", "3.5" },
{ "System.Runtime.Serialization, Version=3.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089", "3.0" },
{ "System.ServiceModel, Version=3.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089", "3.0" },
{ "System.ServiceModel.Web, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35", "3.5" },
{ "System.Speech, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35", "3.0" },
{ "System.Web.Abstractions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35", "3.5" },
{ "System.Web.DynamicData, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35", "3.5" },
{ "System.Web.DynamicData.Design, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35", "3.5" },
{ "System.Web.Entity, Version=3.5.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089", "3.5" },
{ "System.Web.Entity.Design, Version=3.5.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089", "3.5" },
{ "System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35", "3.5" },
{ "System.Web.Extensions.Design, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35", "3.5" },
{ "System.Web.Routing, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35", "3.5" },
{ "System.Windows.Presentation, Version=3.5.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089", "3.5" },
{ "System.Workflow.Activities, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35", "3.0" },
{ "System.Workflow.ComponentModel, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35", "3.0" },
{ "System.Workflow.Runtime, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35", "3.0" },
{ "System.WorkflowServices, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35", "3.5" },
{ "System.Xml.Linq, Version=3.5.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089", "3.5" },
{ "UIAutomationClient, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35", "3.0" },
{ "UIAutomationClientsideProviders, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35", "3.0" },
{ "UIAutomationProvider, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35", "3.0" },
{ "UIAutomationTypes, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35", "3.0" },
{ "WindowsBase, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35", "3.0" },
{ "WindowsFormsIntegration, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35", "3.0" },
// 4.0 Table. Manually modified to exclude assemblies from previous .NET versions.
{ "CustomMarshalers, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a", "4.0" },
{ "ISymWrapper, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a", "4.0" },
{ "PresentationCore, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35", "4.0" },
{ "System.Data, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089", "4.0" },
{ "System.Data.OracleClient, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089", "4.0" },
{ "System.EnterpriseServices, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a", "4.0" },
{ "System.Printing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35", "4.0" },
{ "System.Transactions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089", "4.0" },
{ "System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a", "4.0" },
{ "Accessibility, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a", "4.0" },
{ "IEExecRemote, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a", "4.0" },
{ "IEHost, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a", "4.0" },
{ "IIEHost, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a", "4.0" },
{ "Microsoft.Build.Conversion.v3.5, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a", "4.0" },
{ "Microsoft.Build.Engine, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a", "4.0" },
{ "Microsoft.Build.Framework, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a", "4.0" },
{ "Microsoft.Build.Tasks.v3.5, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a", "4.0" },
{ "Microsoft.Build.Utilities.v3.5, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a", "4.0" },
{ "Microsoft.JScript, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a", "4.0" },
{ "Microsoft.VisualBasic, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a", "4.0" },
{ "Microsoft.VisualC, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a", "4.0" },
{ "PresentationBuildTasks, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35", "4.0" },
{ "PresentationFramework, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35", "4.0" },
{ "PresentationFramework.Aero, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35", "4.0" },
{ "PresentationFramework.Classic, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35", "4.0" },
{ "PresentationFramework.Luna, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35", "4.0" },
{ "PresentationFramework.Royale, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35", "4.0" },
{ "ReachFramework, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35", "4.0" },
{ "System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089", "4.0" },
{ "System.AddIn, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089", "4.0" },
{ "System.ComponentModel.Composition, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089", "4.0" },
{ "System.ComponentModel.DataAnnotations, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35", "4.0" },
{ "System.Configuration, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a", "4.0" },
{ "System.Configuration.Install, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a", "4.0" },
{ "System.Data.DataSetExtensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089", "4.0" },
{ "System.Data.Entity, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089", "4.0" },
{ "System.Data.Entity.Design, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089", "4.0" },
{ "System.Data.Linq, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089", "4.0" },
{ "System.Data.Services, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089", "4.0" },
{ "System.Data.Services.Client, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089", "4.0" },
{ "System.Data.Services.Design, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089", "4.0" },
{ "System.Data.SqlXml, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089", "4.0" },
{ "System.Deployment, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a", "4.0" },
{ "System.Design, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a", "4.0" },
{ "System.DirectoryServices, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a", "4.0" },
{ "System.DirectoryServices.AccountManagement, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089", "4.0" },
{ "System.DirectoryServices.Protocols, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a", "4.0" },
{ "System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a", "4.0" },
{ "System.Drawing.Design, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a", "4.0" },
{ "System.IdentityModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089", "4.0" },
{ "System.IO.Log, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a", "4.0" },
{ "System.Management.Instrumentation, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089", "4.0" },
{ "System.Net, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a", "4.0" },
{ "System.Runtime, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35", "4.0" },
{ "System.Runtime.Remoting, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089", "4.0" },
{ "System.Runtime.Serialization, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089", "4.0" },
{ "System.Runtime.Serialization.Formatters.Soap, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a", "4.0" },
{ "System.Security, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a", "4.0" },
{ "System.ServiceModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089", "4.0" },
{ "System.ServiceModel.Channels, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35", "4.0" },
{ "System.ServiceModel.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35", "4.0" },
{ "System.ServiceProcess, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a", "4.0" },
{ "System.Web.Abstractions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35", "4.0" },
{ "System.Web.DynamicData, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35", "4.0" },
{ "System.Web.DynamicData.Design, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35", "4.0" },
{ "System.Web.Entity, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089", "4.0" },
{ "System.Web.Entity.Design, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089", "4.0" },
{ "System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35", "4.0" },
{ "System.Web.Extensions.Design, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35", "4.0" },
{ "System.Web.Mobile, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a", "4.0" },
{ "System.Web.RegularExpressions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a", "4.0" },
{ "System.Web.Routing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35", "4.0" },
{ "System.Web.Services, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a", "4.0" },
{ "System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089", "4.0" },
{ "System.Windows.Presentation, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089", "4.0" },
{ "System.Workflow.Activities, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35", "4.0" },
{ "System.Workflow.ComponentModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35", "4.0" },
{ "System.Workflow.Runtime, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35", "4.0" },
{ "System.WorkflowServices, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35", "4.0" },
{ "System.Xaml, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089", "4.0" },
{ "System.Xaml.Hosting, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35", "4.0" },
{ "System.Xml, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089", "4.0" },
{ "System.Xml.Linq, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089", "4.0" },
{ "UIAutomationClient, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35", "4.0" },
{ "UIAutomationClientsideProviders, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35", "4.0" },
{ "UIAutomationProvider, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35", "4.0" },
{ "UIAutomationTypes, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35", "4.0" },
{ "WindowsBase, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35", "4.0" },
{ "WindowsFormsIntegration, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35", "4.0" },
};
public static IEnumerable<string> FullAssemblyNames {
get { return fullAssemblyNameToRequiredFrameworkVersionDictionary.Keys; }
}
public static bool TryGetRequiredFrameworkVersion(string fullAssemblyName, out string version)
{
return fullAssemblyNameToRequiredFrameworkVersionDictionary.TryGetValue(fullAssemblyName, out version);
}
}
}

19
src/Libraries/ICSharpCode.Build.Tasks/Project/SharpDevelop.TargetingPack.targets

@ -0,0 +1,19 @@ @@ -0,0 +1,19 @@
<?xml version="1.0"?>
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<UsingTask TaskName="ICSharpCode.Build.Tasks.CopyLocalWorkaround" AssemblyFile="$(SharpDevelopBinPath)\ICSharpCode.Build.Tasks.dll"/>
<!--
This file detects when the .NET 4 targeting pack is missing and corrects the "Copy Local" flag.
This file uses MSBuild 4.0 features, so don't include it in older projects. When compiling inside SharpDevelop,
this file is automatically included if the project uses MSBuild 4.0 and targets .NET 4.0.
-->
<Target Name="SDTargetingPack" BeforeTargets="ResolveAssemblyReferences">
<CopyLocalWorkaround
Assemblies="@(Reference)"
AssemblyFiles="@(_ExplicitReference)">
<Output TaskParameter="OutputAssemblies" ItemName="Reference" />
<Output TaskParameter="OutputAssemblyFiles" ItemName="_ExplicitReference"/>
</CopyLocalWorkaround>
</Target>
</Project>

3
src/Main/Base/Project/ICSharpCode.SharpDevelop.csproj

@ -68,6 +68,9 @@ @@ -68,6 +68,9 @@
<Reference Include="WindowsFormsIntegration" />
</ItemGroup>
<ItemGroup>
<Compile Include="..\..\..\Libraries\ICSharpCode.Build.Tasks\Project\KnownFrameworkAssemblies.cs">
<Link>Src\Gui\Dialogs\ReferenceDialog\KnownFrameworkAssemblies.cs</Link>
</Compile>
<Compile Include="..\..\ICSharpCode.SharpDevelop.BuildWorker\BuildJob.cs">
<Link>Src\Project\MSBuildEngine\BuildJob.cs</Link>
</Compile>

160
src/Main/Base/Project/Src/Gui/Dialogs/ReferenceDialog/GacReferencePanel.cs

@ -12,6 +12,7 @@ using System.Linq; @@ -12,6 +12,7 @@ using System.Linq;
using System.Threading;
using System.Windows.Forms;
using ICSharpCode.Build.Tasks;
using ICSharpCode.Core;
using ICSharpCode.SharpDevelop.Dom;
using ICSharpCode.SharpDevelop.Project;
@ -112,7 +113,7 @@ namespace ICSharpCode.SharpDevelop.Gui @@ -112,7 +113,7 @@ namespace ICSharpCode.SharpDevelop.Gui
ReferenceProjectItem rpi = new ReferenceProjectItem(selectDialog.ConfigureProject, include);
string requiredFrameworkVersion;
if (chooseSpecificVersionCheckBox.Checked) {
if (fullAssemblyNameToRequiredFrameworkVersionDictionary.TryGetValue(item.Tag.ToString(), out requiredFrameworkVersion)) {
if (KnownFrameworkAssemblies.TryGetRequiredFrameworkVersion(item.Tag.ToString(), out requiredFrameworkVersion)) {
rpi.SetMetadata("RequiredTargetFramework", requiredFrameworkVersion);
}
} else {
@ -125,7 +126,7 @@ namespace ICSharpCode.SharpDevelop.Gui @@ -125,7 +126,7 @@ namespace ICSharpCode.SharpDevelop.Gui
}
}
}
if (fullAssemblyNameToRequiredFrameworkVersionDictionary.TryGetValue(lowestVersion.Tag.ToString(), out requiredFrameworkVersion)) {
if (KnownFrameworkAssemblies.TryGetRequiredFrameworkVersion(lowestVersion.Tag.ToString(), out requiredFrameworkVersion)) {
rpi.SetMetadata("RequiredTargetFramework", requiredFrameworkVersion);
}
}
@ -227,159 +228,6 @@ namespace ICSharpCode.SharpDevelop.Gui @@ -227,159 +228,6 @@ namespace ICSharpCode.SharpDevelop.Gui
});
}
readonly static Dictionary<string, string> fullAssemblyNameToRequiredFrameworkVersionDictionary = new Dictionary<string, string> {
{ "PresentationCore, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35", "3.0" },
{ "System.Printing, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35", "3.0" },
{ "Microsoft.Build.Conversion.v3.5, Version=3.5.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a", "3.5" },
{ "Microsoft.Build.Engine, Version=3.5.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a", "3.5" },
{ "Microsoft.Build.Framework, Version=3.5.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a", "3.5" },
{ "Microsoft.Build.Tasks.v3.5, Version=3.5.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a", "3.5" },
{ "Microsoft.Build.Utilities.v3.5, Version=3.5.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a", "3.5" },
{ "Microsoft.VisualC.STLCLR, Version=1.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a", "3.5" },
{ "PresentationBuildTasks, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35", "3.0" },
{ "PresentationCFFRasterizer, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35", "3.0" },
{ "PresentationFramework, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35", "3.0" },
{ "PresentationFramework.Aero, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35", "3.0" },
{ "PresentationFramework.Classic, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35", "3.0" },
{ "PresentationFramework.Luna, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35", "3.0" },
{ "PresentationFramework.Royale, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35", "3.0" },
{ "PresentationUI, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35", "3.0" },
{ "ReachFramework, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35", "3.0" },
{ "Sentinel.v3.5Client, Version=3.5.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a", "3.5" },
{ "System.AddIn, Version=3.5.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089", "3.5" },
{ "System.AddIn.Contract, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a", "3.5" },
{ "System.Core, Version=3.5.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089", "3.5" },
{ "System.ComponentModel.DataAnnotations, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35", "3.5" },
{ "System.Data.DataSetExtensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089", "3.5" },
{ "System.Data.Entity, Version=3.5.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089", "3.5" },
{ "System.Data.Entity.Design, Version=3.5.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089", "3.5" },
{ "System.Data.Linq, Version=3.5.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089", "3.5" },
{ "System.Data.Services, Version=3.5.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089", "3.5" },
{ "System.Data.Services.Client, Version=3.5.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089", "3.5" },
{ "System.Data.Services.Design, Version=3.5.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089", "3.5" },
{ "System.DirectoryServices.AccountManagement, Version=3.5.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089", "3.5" },
{ "System.IdentityModel, Version=3.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089", "3.0" },
{ "System.IdentityModel.Selectors, Version=3.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089", "3.0" },
{ "System.IO.Log, Version=3.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a", "3.0" },
{ "System.Management.Instrumentation, Version=3.5.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089", "3.5" },
{ "System.Net, Version=3.5.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a", "3.5" },
{ "System.Runtime.Serialization, Version=3.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089", "3.0" },
{ "System.ServiceModel, Version=3.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089", "3.0" },
{ "System.ServiceModel.Web, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35", "3.5" },
{ "System.Speech, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35", "3.0" },
{ "System.Web.Abstractions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35", "3.5" },
{ "System.Web.DynamicData, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35", "3.5" },
{ "System.Web.DynamicData.Design, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35", "3.5" },
{ "System.Web.Entity, Version=3.5.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089", "3.5" },
{ "System.Web.Entity.Design, Version=3.5.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089", "3.5" },
{ "System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35", "3.5" },
{ "System.Web.Extensions.Design, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35", "3.5" },
{ "System.Web.Routing, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35", "3.5" },
{ "System.Windows.Presentation, Version=3.5.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089", "3.5" },
{ "System.Workflow.Activities, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35", "3.0" },
{ "System.Workflow.ComponentModel, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35", "3.0" },
{ "System.Workflow.Runtime, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35", "3.0" },
{ "System.WorkflowServices, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35", "3.5" },
{ "System.Xml.Linq, Version=3.5.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089", "3.5" },
{ "UIAutomationClient, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35", "3.0" },
{ "UIAutomationClientsideProviders, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35", "3.0" },
{ "UIAutomationProvider, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35", "3.0" },
{ "UIAutomationTypes, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35", "3.0" },
{ "WindowsBase, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35", "3.0" },
{ "WindowsFormsIntegration, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35", "3.0" },
// 4.0 Table. Manually modified to exclude assemblies from previous .NET versions.
{ "CustomMarshalers, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a", "4.0" },
{ "ISymWrapper, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a", "4.0" },
{ "PresentationCore, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35", "4.0" },
{ "System.Data, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089", "4.0" },
{ "System.Data.OracleClient, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089", "4.0" },
{ "System.EnterpriseServices, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a", "4.0" },
{ "System.Printing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35", "4.0" },
{ "System.Transactions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089", "4.0" },
{ "System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a", "4.0" },
{ "Accessibility, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a", "4.0" },
{ "IEExecRemote, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a", "4.0" },
{ "IEHost, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a", "4.0" },
{ "IIEHost, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a", "4.0" },
{ "Microsoft.Build.Conversion.v3.5, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a", "4.0" },
{ "Microsoft.Build.Engine, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a", "4.0" },
{ "Microsoft.Build.Framework, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a", "4.0" },
{ "Microsoft.Build.Tasks.v3.5, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a", "4.0" },
{ "Microsoft.Build.Utilities.v3.5, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a", "4.0" },
{ "Microsoft.JScript, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a", "4.0" },
{ "Microsoft.VisualBasic, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a", "4.0" },
{ "Microsoft.VisualC, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a", "4.0" },
{ "PresentationBuildTasks, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35", "4.0" },
{ "PresentationFramework, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35", "4.0" },
{ "PresentationFramework.Aero, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35", "4.0" },
{ "PresentationFramework.Classic, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35", "4.0" },
{ "PresentationFramework.Luna, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35", "4.0" },
{ "PresentationFramework.Royale, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35", "4.0" },
{ "ReachFramework, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35", "4.0" },
{ "System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089", "4.0" },
{ "System.AddIn, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089", "4.0" },
{ "System.ComponentModel.Composition, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089", "4.0" },
{ "System.ComponentModel.DataAnnotations, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35", "4.0" },
{ "System.Configuration, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a", "4.0" },
{ "System.Configuration.Install, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a", "4.0" },
{ "System.Data.DataSetExtensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089", "4.0" },
{ "System.Data.Entity, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089", "4.0" },
{ "System.Data.Entity.Design, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089", "4.0" },
{ "System.Data.Linq, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089", "4.0" },
{ "System.Data.Services, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089", "4.0" },
{ "System.Data.Services.Client, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089", "4.0" },
{ "System.Data.Services.Design, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089", "4.0" },
{ "System.Data.SqlXml, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089", "4.0" },
{ "System.Deployment, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a", "4.0" },
{ "System.Design, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a", "4.0" },
{ "System.DirectoryServices, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a", "4.0" },
{ "System.DirectoryServices.AccountManagement, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089", "4.0" },
{ "System.DirectoryServices.Protocols, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a", "4.0" },
{ "System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a", "4.0" },
{ "System.Drawing.Design, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a", "4.0" },
{ "System.IdentityModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089", "4.0" },
{ "System.IO.Log, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a", "4.0" },
{ "System.Management.Instrumentation, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089", "4.0" },
{ "System.Net, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a", "4.0" },
{ "System.Runtime, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35", "4.0" },
{ "System.Runtime.Remoting, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089", "4.0" },
{ "System.Runtime.Serialization, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089", "4.0" },
{ "System.Runtime.Serialization.Formatters.Soap, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a", "4.0" },
{ "System.Security, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a", "4.0" },
{ "System.ServiceModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089", "4.0" },
{ "System.ServiceModel.Channels, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35", "4.0" },
{ "System.ServiceModel.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35", "4.0" },
{ "System.ServiceProcess, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a", "4.0" },
{ "System.Web.Abstractions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35", "4.0" },
{ "System.Web.DynamicData, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35", "4.0" },
{ "System.Web.DynamicData.Design, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35", "4.0" },
{ "System.Web.Entity, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089", "4.0" },
{ "System.Web.Entity.Design, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089", "4.0" },
{ "System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35", "4.0" },
{ "System.Web.Extensions.Design, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35", "4.0" },
{ "System.Web.Mobile, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a", "4.0" },
{ "System.Web.RegularExpressions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a", "4.0" },
{ "System.Web.Routing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35", "4.0" },
{ "System.Web.Services, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a", "4.0" },
{ "System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089", "4.0" },
{ "System.Windows.Presentation, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089", "4.0" },
{ "System.Workflow.Activities, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35", "4.0" },
{ "System.Workflow.ComponentModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35", "4.0" },
{ "System.Workflow.Runtime, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35", "4.0" },
{ "System.WorkflowServices, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35", "4.0" },
{ "System.Xaml, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089", "4.0" },
{ "System.Xaml.Hosting, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35", "4.0" },
{ "System.Xml, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089", "4.0" },
{ "System.Xml.Linq, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089", "4.0" },
{ "UIAutomationClient, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35", "4.0" },
{ "UIAutomationClientsideProviders, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35", "4.0" },
{ "UIAutomationProvider, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35", "4.0" },
{ "UIAutomationTypes, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35", "4.0" },
{ "WindowsBase, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35", "4.0" },
{ "WindowsFormsIntegration, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35", "4.0" },
};
#if DEBUG
/// <summary>
/// run this method with a .net 3.5 and .net 4.0 project to generate the table above.
@ -431,7 +279,7 @@ namespace ICSharpCode.SharpDevelop.Gui @@ -431,7 +279,7 @@ namespace ICSharpCode.SharpDevelop.Gui
protected virtual IList<DomAssemblyName> GetCacheContent()
{
List<DomAssemblyName> list = GacInterop.GetAssemblyList();
list.RemoveAll(name => name.ShortName.ToLowerInvariant().EndsWith(".resources"));
list.RemoveAll(name => name.ShortName.EndsWith(".resources", StringComparison.OrdinalIgnoreCase));
return list;
}
}

14
src/Main/Base/Project/Src/Project/MSBuildEngine/MSBuildEngine.cs

@ -7,21 +7,14 @@ @@ -7,21 +7,14 @@
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.IO;
using System.Linq;
using System.Text;
using System.Text.RegularExpressions;
using System.Threading;
using System.Xml;
using ICSharpCode.Core;
using ICSharpCode.SharpDevelop.BuildWorker;
using ICSharpCode.SharpDevelop.Gui;
using Microsoft.Build.Construction;
using Microsoft.Build.Execution;
using Microsoft.Build.Framework;
using MSBuild = Microsoft.Build.Evaluation;
namespace ICSharpCode.SharpDevelop.Project
{
@ -114,7 +107,10 @@ namespace ICSharpCode.SharpDevelop.Project @@ -114,7 +107,10 @@ namespace ICSharpCode.SharpDevelop.Project
throw new ArgumentNullException("additionalTargetFiles");
MSBuildEngine engine = new MSBuildEngine(project, options, feedbackSink);
engine.additionalTargetFiles = additionalTargetFiles;
engine.additionalTargetFiles = additionalTargetFiles.ToList();
if (project.MinimumSolutionVersion >= Solution.SolutionVersionVS2010) {
engine.additionalTargetFiles.Add(Path.Combine(Path.GetDirectoryName(typeof(MSBuildEngine).Assembly.Location), "SharpDevelop.TargetingPack.targets"));
}
engine.serviceContainer = serviceContainer;
engine.StartBuild();
}
@ -123,7 +119,7 @@ namespace ICSharpCode.SharpDevelop.Project @@ -123,7 +119,7 @@ namespace ICSharpCode.SharpDevelop.Project
readonly int projectMinimumSolutionVersion;
ProjectBuildOptions options;
IBuildFeedbackSink feedbackSink;
IEnumerable<string> additionalTargetFiles;
List<string> additionalTargetFiles;
ThreadSafeServiceContainer serviceContainer;
private MSBuildEngine(IProject project, ProjectBuildOptions options, IBuildFeedbackSink feedbackSink)

61
src/Main/Base/Project/Src/Services/File/RecentOpen.cs

@ -7,15 +7,17 @@ @@ -7,15 +7,17 @@
using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.IO;
using System.Linq;
using System.Windows.Shell;
using ICSharpCode.Core;
namespace ICSharpCode.SharpDevelop
{
/// <summary>
/// This class handles the recent open files and the recent open project files of SharpDevelop
/// it checks, if the files exists at every creation, and if not it doesn't list them in the
/// it checks, if the files exists at every creation, and if not it doesn't list them in the
/// recent files, and they'll not be saved during the next option save.
/// </summary>
public sealed class RecentOpen
@ -26,62 +28,35 @@ namespace ICSharpCode.SharpDevelop @@ -26,62 +28,35 @@ namespace ICSharpCode.SharpDevelop
/// </summary>
int MAX_LENGTH = 10;
List<string> lastfile = new List<string>();
List<string> lastproject = new List<string>();
public event EventHandler RecentFileChanged;
public event EventHandler RecentProjectChanged;
readonly ObservableCollection<string> lastfile = new ObservableCollection<string>();
readonly ObservableCollection<string> lastproject = new ObservableCollection<string>();
public List<string> RecentFile {
public IList<string> RecentFile {
get {
System.Diagnostics.Debug.Assert(lastfile != null, "RecentOpen : set string[] LastFile (value == null)");
return lastfile;
}
}
public List<string> RecentProject {
public IList<string> RecentProject {
get {
System.Diagnostics.Debug.Assert(lastproject != null, "RecentOpen : set string[] LastProject (value == null)");
return lastproject;
}
}
void OnRecentFileChange()
{
if (RecentFileChanged != null) {
RecentFileChanged(this, null);
}
}
void OnRecentProjectChange()
{
if (RecentProjectChanged != null) {
RecentProjectChanged(this, null);
}
}
public RecentOpen()
{
}
public RecentOpen(Properties p)
{
// don't check whether files exist because that might be slow (e.g. if file is on network
// drive that's unavailable)
if (p.Contains("Files")) {
string[] files = p["Files"].Split(',');
foreach (string file in files) {
if (File.Exists(file)) {
lastfile.Add(file);
}
}
lastfile.AddRange(p["Files"].Split(','));
}
if (p.Contains("Projects")) {
string[] projects = p["Projects"].Split(',');
foreach (string file in projects) {
if (File.Exists(file)) {
lastproject.Add(file);
}
}
lastproject.AddRange(p["Projects"].Split(','));
}
}
@ -102,22 +77,16 @@ namespace ICSharpCode.SharpDevelop @@ -102,22 +77,16 @@ namespace ICSharpCode.SharpDevelop
} else {
lastfile.Add(name);
}
OnRecentFileChange();
}
public void ClearRecentFiles()
{
lastfile.Clear();
OnRecentFileChange();
}
public void ClearRecentProjects()
{
lastproject.Clear();
OnRecentProjectChange();
}
public void AddLastProject(string name)
@ -135,9 +104,9 @@ namespace ICSharpCode.SharpDevelop @@ -135,9 +104,9 @@ namespace ICSharpCode.SharpDevelop
if (lastproject.Count > 0) {
lastproject.Insert(0, name);
} else {
lastproject.Add(name);
lastproject.Add(name);
}
OnRecentProjectChange();
JumpList.AddToRecentCategory(name);
}
public static RecentOpen FromXmlElement(Properties properties)
@ -159,7 +128,6 @@ namespace ICSharpCode.SharpDevelop @@ -159,7 +128,6 @@ namespace ICSharpCode.SharpDevelop
string file = lastfile[i].ToString();
if (e.FileName == file) {
lastfile.RemoveAt(i);
OnRecentFileChange();
break;
}
}
@ -172,7 +140,6 @@ namespace ICSharpCode.SharpDevelop @@ -172,7 +140,6 @@ namespace ICSharpCode.SharpDevelop
if (e.SourceFile == file) {
lastfile.RemoveAt(i);
lastfile.Insert(i, e.TargetFile);
OnRecentFileChange();
break;
}
}

Loading…
Cancel
Save