Browse Source

Use a single ProjectCollection - MSBuild 4.0 doesn't support parallel builds if multiple project collections are used.

Implemented ResolveAssemblyReferences.

git-svn-id: svn://svn.sharpdevelop.net/sharpdevelop/branches/dotnet4@4242 1ccf3a8d-04fe-1044-b7c0-cef0b8235c61
shortcuts
Daniel Grunwald 17 years ago
parent
commit
4db1e52468
  1. 2
      src/Main/Base/Project/Src/Editor/Search/SearchResultsPad.cs
  2. 140
      src/Main/Base/Project/Src/Gui/Dialogs/ReferenceDialog/GacReferencePanel.cs
  3. 4
      src/Main/Base/Project/Src/Project/Items/ItemType.cs
  4. 93
      src/Main/Base/Project/Src/Project/MSBuildBasedProject.cs
  5. 32
      src/Main/Base/Project/Src/Project/MSBuildEngine/MSBuildEngine.cs
  6. 175
      src/Main/Base/Project/Src/Project/MSBuildInternals.cs
  7. 5
      src/Main/Base/Project/Src/Services/ParserService/ParseProjectContent.cs
  8. 85
      src/SharpDevelop.sln

2
src/Main/Base/Project/Src/Editor/Search/SearchResultsPad.cs

@ -112,7 +112,7 @@ namespace ICSharpCode.SharpDevelop.Editor.Search @@ -112,7 +112,7 @@ namespace ICSharpCode.SharpDevelop.Editor.Search
throw new ArgumentNullException("title");
if (matches == null)
throw new ArgumentNullException("matches");
foreach (ISearchResultFactory factory in AddInTree.BuildItems<ISearchResultFactory>("/SharpDevelop/Pads/SearchResultPad/Factories", null)) {
foreach (ISearchResultFactory factory in AddInTree.BuildItems<ISearchResultFactory>("/SharpDevelop/Pads/SearchResultPad/Factories", null, false)) {
ISearchResult result = factory.CreateSearchResult(title, matches);
if (result != null)
return result;

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

@ -179,7 +179,7 @@ namespace ICSharpCode.SharpDevelop.Gui @@ -179,7 +179,7 @@ namespace ICSharpCode.SharpDevelop.Gui
listView.Items.AddRange(shortItemList);
Thread resolveVersionsThread = new Thread(ResolveVersionsWorker);
Thread resolveVersionsThread = new Thread(ResolveVersionsThread);
resolveVersionsThread.SetApartmentState(ApartmentState.STA);
resolveVersionsThread.IsBackground = true;
resolveVersionsThread.Name = "resolveVersionsThread";
@ -191,6 +191,7 @@ namespace ICSharpCode.SharpDevelop.Gui @@ -191,6 +191,7 @@ namespace ICSharpCode.SharpDevelop.Gui
{
try {
ResolveVersionsWorker();
//CreateReferenceToFrameworkTable();
} catch (Exception ex) {
MessageService.ShowError(ex);
}
@ -236,8 +237,8 @@ namespace ICSharpCode.SharpDevelop.Gui @@ -236,8 +237,8 @@ namespace ICSharpCode.SharpDevelop.Gui
{ "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" },
{ "policy.1.0.System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35", "3.5" },
{ "policy.1.0.System.Web.Extensions.Design, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35", "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" },
@ -245,31 +246,149 @@ namespace ICSharpCode.SharpDevelop.Gui @@ -245,31 +246,149 @@ namespace ICSharpCode.SharpDevelop.Gui
{ "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.Data.DataSetExtensions, Version=2.0.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" }
{ "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 project to generate the table above.
/// run this method with a .net 3.5 and .net 4.0 project to generate the table above.
/// </summary>
void CreateReferenceToFrameworkTable()
{
LoggingService.Warn("Running CreateReferenceToFrameworkTable()");
MSBuildBasedProject project = selectDialog.ConfigureProject as MSBuildBasedProject;
if (project == null)
return;
@ -279,7 +398,9 @@ namespace ICSharpCode.SharpDevelop.Gui @@ -279,7 +398,9 @@ namespace ICSharpCode.SharpDevelop.Gui
{ "Microsoft-Windows-CLRCoreComp", null },
{ "Microsoft.VisualStudio.Primary.Interop.Assemblies.8.0", null },
{ "Microsoft-WinFX-Runtime", "3.0" },
{ "Microsoft-Windows-CLRCoreComp-v3.5", "3.5" }
{ "Microsoft-Windows-CLRCoreComp.3.0", "3.0" },
{ "Microsoft-Windows-CLRCoreComp-v3.5", "3.5" },
{ "Microsoft-Windows-CLRCoreComp.4.0", "4.0" },
};
using (StreamWriter w = new StreamWriter("c:\\temp\\references.txt")) {
@ -295,9 +416,8 @@ namespace ICSharpCode.SharpDevelop.Gui @@ -295,9 +416,8 @@ namespace ICSharpCode.SharpDevelop.Gui
foreach (ReferenceProjectItem rpi in referenceItems) {
if (string.IsNullOrEmpty(rpi.Redist)) continue;
if (!redistNameToRequiredFramework.ContainsKey(rpi.Redist)) {
throw new Exception("unknown redist: " + rpi.Redist);
}
if (redistNameToRequiredFramework[rpi.Redist] != null) {
LoggingService.Error("unknown redist: " + rpi.Redist);
} else if (redistNameToRequiredFramework[rpi.Redist] != null) {
w.Write("\t\t\t{ \"");
w.Write(rpi.Include);
w.Write("\", \"");

4
src/Main/Base/Project/Src/Project/Items/ItemType.cs

@ -6,6 +6,7 @@ @@ -6,6 +6,7 @@
// </file>
using System;
using System.Collections.Generic;
namespace ICSharpCode.SharpDevelop.Project
{
@ -21,6 +22,9 @@ namespace ICSharpCode.SharpDevelop.Project @@ -21,6 +22,9 @@ namespace ICSharpCode.SharpDevelop.Project
public static readonly ItemType ProjectReference = new ItemType("ProjectReference");
public static readonly ItemType COMReference = new ItemType("COMReference");
public static readonly ReadOnlyCollectionWrapper<ItemType> ReferenceItemTypes
= new ReadOnlyCollectionWrapper<ItemType>(new List<ItemType> { Reference, ProjectReference, COMReference });
/// <summary>
/// Item type for imported VB namespaces
/// </summary>

93
src/Main/Base/Project/Src/Project/MSBuildBasedProject.cs

@ -31,8 +31,6 @@ namespace ICSharpCode.SharpDevelop.Project @@ -31,8 +31,6 @@ namespace ICSharpCode.SharpDevelop.Project
/// </summary>
public class MSBuildBasedProject : AbstractProject, IProjectItemListProvider
{
readonly MSBuild.ProjectCollection projectCollection;
/// <summary>
/// The underlying MSBuild project.
/// </summary>
@ -55,18 +53,17 @@ namespace ICSharpCode.SharpDevelop.Project @@ -55,18 +53,17 @@ namespace ICSharpCode.SharpDevelop.Project
public MSBuildBasedProject()
{
projectCollection = new MSBuild.ProjectCollection();
this.projectFile = ProjectRootElement.Create(projectCollection);
this.userProjectFile = ProjectRootElement.Create(projectCollection);
this.projectFile = ProjectRootElement.Create();
this.userProjectFile = ProjectRootElement.Create();
}
public override void Dispose()
{
base.Dispose();
// unload evaluatingTempProject if necessary:
//MSBuildInternals.EnsureCorrectTempProject(project, null, null, ref evaluatingTempProject);
UnloadCurrentlyOpenProject();
// unload project + userProject:
projectCollection.UnloadAllProjects();
projectFile = null;
userProjectFile = null;
}
public override int MinimumSolutionVersion {
@ -151,8 +148,6 @@ namespace ICSharpCode.SharpDevelop.Project @@ -151,8 +148,6 @@ namespace ICSharpCode.SharpDevelop.Project
#region Create new project
protected virtual void Create(ProjectCreateInformation information)
{
InitializeMSBuildProjectProperties(projectCollection);
Name = information.ProjectName;
FileName = information.OutputProjectFileName;
@ -309,14 +304,25 @@ namespace ICSharpCode.SharpDevelop.Project @@ -309,14 +304,25 @@ namespace ICSharpCode.SharpDevelop.Project
MSBuild.Project currentlyOpenProject;
void ReconfigureCurrentlyOpenProject()
void UnloadCurrentlyOpenProject()
{
if (currentlyOpenProject != null) {
projectCollection.UnloadProject(currentlyOpenProject);
MSBuildInternals.UnloadProject(currentlyOpenProject);
currentlyOpenProject = null;
}
}
/// <summary>
/// Creates an MSBuild project instance.
/// This method is thread-safe.
/// </summary>
public Microsoft.Build.Execution.ProjectInstance CreateProjectInstance()
{
using (var c = OpenCurrentConfiguration()) {
return c.Project.CreateProjectInstance();
}
}
ConfiguredProject OpenCurrentConfiguration()
{
return OpenConfiguration(null, null);
@ -342,12 +348,10 @@ namespace ICSharpCode.SharpDevelop.Project @@ -342,12 +348,10 @@ namespace ICSharpCode.SharpDevelop.Project
}
Dictionary<string, string> globalProps = new Dictionary<string, string>();
InitializeMSBuildProjectProperties(globalProps);
globalProps["Configuration"] = configuration;
globalProps["Platform"] = platform;
string toolsVersion = projectFile.ToolsVersion;
if (string.IsNullOrEmpty(toolsVersion))
toolsVersion = projectCollection.DefaultToolsVersion;
var project = new MSBuild.Project(projectFile, globalProps, toolsVersion, projectCollection);
MSBuild.Project project = MSBuildInternals.LoadProject(projectFile, globalProps);
if (openCurrentConfiguration)
currentlyOpenProject = project;
return new ConfiguredProject(this, project, !openCurrentConfiguration);
@ -356,12 +360,12 @@ namespace ICSharpCode.SharpDevelop.Project @@ -356,12 +360,12 @@ namespace ICSharpCode.SharpDevelop.Project
// If there's no exception, the lock will be left when the ConfiguredProject
// is disposed.
if (lockTaken)
System.Threading.Monitor.Exit(this.SyncRoot);
System.Threading.Monitor.Exit(this.SyncRoot);
throw;
}
}
sealed class ConfiguredProject : IDisposable
sealed class ConfiguredProject : IDisposable
{
readonly MSBuildBasedProject p;
readonly bool unloadProjectOnDispose;
@ -394,10 +398,13 @@ namespace ICSharpCode.SharpDevelop.Project @@ -394,10 +398,13 @@ namespace ICSharpCode.SharpDevelop.Project
public void Dispose()
{
if (unloadProjectOnDispose) {
p.projectCollection.UnloadProject(this.Project);
try {
if (unloadProjectOnDispose) {
MSBuildInternals.UnloadProject(this.Project);
}
} finally {
System.Threading.Monitor.Exit(p.SyncRoot);
}
System.Threading.Monitor.Exit(p.SyncRoot);
}
}
@ -495,7 +502,7 @@ namespace ICSharpCode.SharpDevelop.Project @@ -495,7 +502,7 @@ namespace ICSharpCode.SharpDevelop.Project
}
return l;
}
*/
*/
#endregion
#region SetProperty
@ -740,8 +747,8 @@ namespace ICSharpCode.SharpDevelop.Project @@ -740,8 +747,8 @@ namespace ICSharpCode.SharpDevelop.Project
enum PropertyPosition
{
UseExistingOrCreateAfterLastPropertyGroup,
UseExistingOrCreateAfterLastImport
UseExistingOrCreateAfterLastPropertyGroup,
UseExistingOrCreateAfterLastImport
}
void MSBuildSetProperty(ProjectRootElement targetProject, string propertyName, string newValue,
@ -785,7 +792,7 @@ namespace ICSharpCode.SharpDevelop.Project @@ -785,7 +792,7 @@ namespace ICSharpCode.SharpDevelop.Project
bool propertyRemoved = false;
foreach (var property in propertyGroup.Properties.ToList()) {
if (property.Name == propertyName) {
propertyGroup.RemoveChild(property);
propertyGroup.RemoveChild(property);
propertyRemoved = true;
}
}
@ -1018,14 +1025,6 @@ namespace ICSharpCode.SharpDevelop.Project @@ -1018,14 +1025,6 @@ namespace ICSharpCode.SharpDevelop.Project
/// <summary>
/// Set compilation properties (MSBuildProperties and AddInTree/AdditionalPropertiesPath).
/// </summary>
internal static void InitializeMSBuildProjectProperties(MSBuild.ProjectCollection collection)
{
Dictionary<string, string> props = new Dictionary<string, string>();
InitializeMSBuildProjectProperties(props);
foreach (var pair in props)
collection.SetGlobalProperty(pair.Key, pair.Value);
}
internal static void InitializeMSBuildProjectProperties(IDictionary<string, string> globalProperties)
{
foreach (KeyValuePair<string, string> entry in MSBuildEngine.MSBuildProperties) {
@ -1063,10 +1062,8 @@ namespace ICSharpCode.SharpDevelop.Project @@ -1063,10 +1062,8 @@ namespace ICSharpCode.SharpDevelop.Project
{
this.FileName = fileName;
InitializeMSBuildProjectProperties(projectCollection);
//try {
projectFile = ProjectRootElement.Open(fileName, projectCollection);
projectFile = ProjectRootElement.Open(fileName);
/*} catch (MSBuild.InvalidProjectFileException ex) {
LoggingService.Warn(ex);
LoggingService.Warn("ErrorCode = " + ex.ErrorCode);
@ -1101,7 +1098,7 @@ namespace ICSharpCode.SharpDevelop.Project @@ -1101,7 +1098,7 @@ namespace ICSharpCode.SharpDevelop.Project
string userFileName = fileName + ".user";
if (File.Exists(userFileName)) {
//try {
userProjectFile = ProjectRootElement.Open(userFileName, projectCollection);
userProjectFile = ProjectRootElement.Open(userFileName);
/*} catch (MSBuild.InvalidProjectFileException ex) {
throw new ProjectLoadException("Error loading user part " + userFileName + ":\n" + ex.Message);
}*/
@ -1133,11 +1130,15 @@ namespace ICSharpCode.SharpDevelop.Project @@ -1133,11 +1130,15 @@ namespace ICSharpCode.SharpDevelop.Project
public override void Save(string fileName)
{
lock (SyncRoot) {
projectFile.Save(fileName);
bool userProjectDirty = userProjectFile.HasUnsavedChanges;
string userFile = fileName + ".user";
if (File.Exists(userFile) || userProjectFile.Count > 0) {
userProjectFile.Save(userFile);
// we need the global lock - if the file is being renamed,
// MSBuild will update the global project collection
lock (MSBuildInternals.GlobalProjectCollectionLock) {
projectFile.Save(fileName);
//bool userProjectDirty = userProjectFile.HasUnsavedChanges;
string userFile = fileName + ".user";
if (File.Exists(userFile) || userProjectFile.Count > 0) {
userProjectFile.Save(userFile);
}
}
}
FileUtility.RaiseFileSaved(new FileNameEventArgs(fileName));
@ -1149,7 +1150,7 @@ namespace ICSharpCode.SharpDevelop.Project @@ -1149,7 +1150,7 @@ namespace ICSharpCode.SharpDevelop.Project
{
if (!isLoading) {
lock (SyncRoot) {
ReconfigureCurrentlyOpenProject();
UnloadCurrentlyOpenProject();
CreateItemsListFromMSBuild();
}
}
@ -1160,7 +1161,7 @@ namespace ICSharpCode.SharpDevelop.Project @@ -1160,7 +1161,7 @@ namespace ICSharpCode.SharpDevelop.Project
{
if (!isLoading) {
lock (SyncRoot) {
ReconfigureCurrentlyOpenProject();
UnloadCurrentlyOpenProject();
CreateItemsListFromMSBuild();
}
}
@ -1231,7 +1232,7 @@ namespace ICSharpCode.SharpDevelop.Project @@ -1231,7 +1232,7 @@ namespace ICSharpCode.SharpDevelop.Project
if (prop != null && !string.IsNullOrEmpty(prop.Value)) {
platformNames.Add(prop.Value);
}
} else {
} else {
string gConfiguration, gPlatform;
MSBuildInternals.GetConfigurationAndPlatformFromCondition(g.Condition, out gConfiguration, out gPlatform);
if (gConfiguration != null) {
@ -1444,7 +1445,7 @@ namespace ICSharpCode.SharpDevelop.Project @@ -1444,7 +1445,7 @@ namespace ICSharpCode.SharpDevelop.Project
return true;
}
}
*/
*/
#endregion
}
}

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

@ -159,34 +159,30 @@ namespace ICSharpCode.SharpDevelop.Project @@ -159,34 +159,30 @@ namespace ICSharpCode.SharpDevelop.Project
void RunBuild(object state)
{
var projectCollection = new MSBuild.ProjectCollection();
MSBuildBasedProject.InitializeMSBuildProjectProperties(projectCollection);
Dictionary<string, string> globalProperties = new Dictionary<string, string>();
MSBuildBasedProject.InitializeMSBuildProjectProperties(globalProperties);
Solution solution = project.ParentSolution;
projectCollection.SetGlobalProperty("SolutionDir", EnsureBackslash(solution.Directory));
projectCollection.SetGlobalProperty("SolutionExt", ".sln");
projectCollection.SetGlobalProperty("SolutionFileName", Path.GetFileName(solution.FileName));
projectCollection.SetGlobalProperty("SolutionPath", solution.FileName);
globalProperties["SolutionDir"] = EnsureBackslash(solution.Directory);
globalProperties["SolutionExt"] = ".sln";
globalProperties["SolutionFileName"] = Path.GetFileName(solution.FileName);
globalProperties["SolutionPath"] = solution.FileName;
foreach (var pair in options.Properties) {
projectCollection.SetGlobalProperty(pair.Key, pair.Value);
foreach (KeyValuePair<string, string> pair in options.Properties) {
globalProperties[pair.Key] = pair.Value;
}
projectCollection.SetGlobalProperty("Configuration", options.Configuration);
globalProperties["Configuration"] = options.Configuration;
if (options.Platform == "Any CPU")
projectCollection.SetGlobalProperty("Platform", "AnyCPU");
globalProperties["Platform"] = "AnyCPU";
else
projectCollection.SetGlobalProperty("Platform", options.Platform);
globalProperties["Platform"] = options.Platform;
InterestingTasks.AddRange(MSBuildEngine.CompileTaskNames);
var projectFile = ProjectRootElement.Open(project.FileName, projectCollection);
ProjectRootElement projectFile = ProjectRootElement.Open(project.FileName);
foreach (string import in additionalTargetFiles)
projectFile.AddImport(import);
string toolsVersion = projectFile.ToolsVersion;
if (string.IsNullOrEmpty(toolsVersion))
toolsVersion = projectCollection.DefaultToolsVersion;
var evalProject = new MSBuild.Project(projectFile, null, toolsVersion, projectCollection);
var projectInstance = evalProject.CreateProjectInstance();
ProjectInstance projectInstance = MSBuildInternals.LoadProjectInstance(projectFile, globalProperties);
string[] targets = { options.Target.TargetName };
BuildRequestData requestData = new BuildRequestData(projectInstance, targets, new HostServices());
@ -200,7 +196,7 @@ namespace ICSharpCode.SharpDevelop.Project @@ -200,7 +196,7 @@ namespace ICSharpCode.SharpDevelop.Project
feedbackSink.Done(submission.BuildResult.OverallResult == Microsoft.Build.Execution.BuildResultCode.Success);
}
/*
/*
WorkerManager.ShowError = MessageService.ShowError;
BuildWorker.BuildSettings settings = new BuildWorker.BuildSettings();
SharpDevelopLogger logger = new SharpDevelopLogger(this);

175
src/Main/Base/Project/Src/Project/MSBuildInternals.cs

@ -6,6 +6,8 @@ @@ -6,6 +6,8 @@
// </file>
using Microsoft.Build.Construction;
using Microsoft.Build.Execution;
using Microsoft.Build.Framework;
using System;
using System.Collections;
using System.Collections.Generic;
@ -19,6 +21,7 @@ using System.Text.RegularExpressions; @@ -19,6 +21,7 @@ using System.Text.RegularExpressions;
using System.Xml;
using ICSharpCode.Core;
using MSBuild = Microsoft.Build;
using ProjectCollection = Microsoft.Build.Evaluation.ProjectCollection;
namespace ICSharpCode.SharpDevelop.Project
{
@ -31,7 +34,34 @@ namespace ICSharpCode.SharpDevelop.Project @@ -31,7 +34,34 @@ namespace ICSharpCode.SharpDevelop.Project
/// MSBuild does not support multi-threading, so every invocation of MSBuild that
/// runs inside the SharpDevelop process must lock on this object to prevent conflicts.
/// </summary>
public readonly static object InProcessMSBuildLock = new object();
public readonly static object GlobalProjectCollectionLock = new object();
internal static void UnloadProject(MSBuild.Evaluation.Project project)
{
lock (GlobalProjectCollectionLock) {
ProjectCollection.GlobalProjectCollection.UnloadProject(project);
}
}
internal static MSBuild.Evaluation.Project LoadProject(ProjectRootElement rootElement, IDictionary<string, string> globalProps)
{
lock (GlobalProjectCollectionLock) {
string toolsVersion = rootElement.ToolsVersion;
if (string.IsNullOrEmpty(toolsVersion))
toolsVersion = ProjectCollection.GlobalProjectCollection.DefaultToolsVersion;
return new MSBuild.Evaluation.Project(rootElement, globalProps, toolsVersion, ProjectCollection.GlobalProjectCollection);
}
}
internal static ProjectInstance LoadProjectInstance(ProjectRootElement rootElement, IDictionary<string, string> globalProps)
{
lock (GlobalProjectCollectionLock) {
string toolsVersion = rootElement.ToolsVersion;
if (string.IsNullOrEmpty(toolsVersion))
toolsVersion = ProjectCollection.GlobalProjectCollection.DefaultToolsVersion;
return new ProjectInstance(rootElement, globalProps, toolsVersion, ProjectCollection.GlobalProjectCollection);
}
}
const string MSBuildXmlNamespace = "http://schemas.microsoft.com/developer/msbuild/2003";
@ -105,7 +135,7 @@ namespace ICSharpCode.SharpDevelop.Project @@ -105,7 +135,7 @@ namespace ICSharpCode.SharpDevelop.Project
tempProject = baseProject;
}
}
*/
*/
internal static PropertyStorageLocations GetLocationFromCondition(MSBuild.Construction.ProjectElement element)
{
@ -207,7 +237,7 @@ namespace ICSharpCode.SharpDevelop.Project @@ -207,7 +237,7 @@ namespace ICSharpCode.SharpDevelop.Project
return new MSBuild.Engine(MSBuild.ToolsetDefinitionLocations.Registry
| MSBuild.ToolsetDefinitionLocations.ConfigurationFile);
}
*/
*/
/*
/// <summary>
@ -230,7 +260,7 @@ namespace ICSharpCode.SharpDevelop.Project @@ -230,7 +260,7 @@ namespace ICSharpCode.SharpDevelop.Project
}
EndXmlManipulation(project);
}
*/
*/
/*
/// <summary>
@ -272,61 +302,75 @@ namespace ICSharpCode.SharpDevelop.Project @@ -272,61 +302,75 @@ namespace ICSharpCode.SharpDevelop.Project
prop.SetValue(item, oldValue, null);
return result;
}
*/
*/
internal static void ResolveAssemblyReferences(MSBuildBasedProject baseProject, ReferenceProjectItem[] referenceReplacements)
{
/*
MSBuild.Engine tempEngine;
MSBuild.Project tempProject;
IEnumerable<ReferenceProjectItem> references;
ProjectInstance project = baseProject.CreateProjectInstance();
project.SetProperty("BuildingProject", "false");
lock (baseProject.SyncRoot) {
// create a copy of the project
tempEngine = CreateEngine();
tempProject = tempEngine.CreateNewProject();
// tell MSBuild the path so that projects containing <Import Project="relativePath" />
// can be loaded
tempProject.FullFileName = baseProject.MSBuildProject.FullFileName;
MSBuildBasedProject.InitializeMSBuildProject(tempProject);
tempProject.LoadXml(baseProject.MSBuildProject.Xml);
tempProject.SetProperty("Configuration", baseProject.ActiveConfiguration);
tempProject.SetProperty("Platform", baseProject.ActivePlatform);
tempProject.SetProperty("BuildingProject", "false");
List<ProjectItemInstance> references = (
from item in project.Items
where ItemType.ReferenceItemTypes.Contains(new ItemType(item.ItemType))
select item
).ToList();
ReferenceProjectItem[] referenceProjectItems;
if (referenceReplacements == null) {
// Remove the "Private" meta data.
// This is necessary to detect the default value for "Private"
foreach (ProjectItemInstance reference in references) {
reference.RemoveMetadata("Private");
}
if (referenceReplacements == null) {
references = baseProject.GetItemsOfType(ItemType.Reference).OfType<ReferenceProjectItem>();
// remove the "Private" meta data
foreach (MSBuild.BuildItemGroup itemGroup in tempProject.ItemGroups) {
// skip item groups from imported projects
if (itemGroup.IsImported)
continue;
foreach (MSBuild.BuildItem item in itemGroup) {
if (item.Name == ItemType.Reference.ItemName) {
item.RemoveMetadata("Private");
}
}
}
referenceProjectItems = baseProject.Items.OfType<ReferenceProjectItem>().ToArray();
} else {
foreach (ProjectItemInstance reference in references) {
project.RemoveItem(reference);
}
foreach (ReferenceProjectItem item in referenceReplacements) {
project.AddItem("Reference", item.Include);
}
referenceProjectItems = referenceReplacements;
}
string[] targets = { "ResolveAssemblyReferences" };
BuildRequestData requestData = new BuildRequestData(project, targets, new HostServices());
BuildSubmission submission = ParallelMSBuildManager.StartBuild(requestData, new SimpleErrorLogger(), null);
LoggingService.Debug("Started build for ResolveAssemblyReferences");
submission.WaitHandle.WaitOne();
BuildResult result = submission.BuildResult;
if (result == null)
throw new InvalidOperationException("BuildResult is null");
LoggingService.Debug("Build for ResolveAssemblyReferences finished: " + result.OverallResult);
var referenceDict = new Dictionary<string, ReferenceProjectItem>();
foreach (ReferenceProjectItem item in referenceProjectItems) {
// references could be duplicate, so we cannot use referenceDict.Add or reference.ToDictionary
referenceDict[item.Include] = item;
}
foreach (ProjectItemInstance item in project.GetItems("_ResolveAssemblyReferenceResolvedFiles")) {
string originalInclude = item.GetMetadataValue("OriginalItemSpec");
ReferenceProjectItem reference;
if (referenceDict.TryGetValue(originalInclude, out reference)) {
reference.AssemblyName = new Dom.DomAssemblyName(item.GetMetadataValue("FusionName"));
//string fullPath = item.GetEvaluatedMetadata("FullPath"); is incorrect for relative paths
string fullPath = FileUtility.GetAbsolutePath(baseProject.Directory, item.GetMetadataValue("Identity"));
reference.FileName = fullPath;
reference.Redist = item.GetMetadataValue("Redist");
LoggingService.Debug("Got information about " + originalInclude + "; fullpath=" + fullPath);
reference.DefaultCopyLocalValue = bool.Parse(item.GetMetadataValue("CopyLocal"));
} else {
references = referenceReplacements;
// replace all references in the project with the referenceReplacements
foreach (MSBuild.BuildItemGroup itemGroup in tempProject.ItemGroups) {
// skip item groups from imported projects
if (itemGroup.IsImported)
continue;
foreach (MSBuild.BuildItem item in itemGroup.ToArray()) {
if (item.Name == ItemType.Reference.ItemName) {
itemGroup.RemoveItem(item);
}
}
}
foreach (ReferenceProjectItem item in referenceReplacements) {
tempProject.AddNewItem("Reference", item.Include, true);
}
LoggingService.Warn("Unknown item " + originalInclude);
}
}
/*
var referenceDict = new Dictionary<string, ReferenceProjectItem>();
foreach (ReferenceProjectItem item in references) {
// references could be duplicate, so we cannot use referenceDict.Add or reference.ToDictionary
@ -362,8 +406,33 @@ namespace ICSharpCode.SharpDevelop.Project @@ -362,8 +406,33 @@ namespace ICSharpCode.SharpDevelop.Project
}
}
tempEngine.UnloadAllProjects(); // unload temp project
*/
tempEngine.UnloadAllProjects(); // unload temp project*/
}
sealed class SimpleErrorLogger : ILogger
{
#region ILogger interface implementation
public LoggerVerbosity Verbosity { get; set; }
public string Parameters { get; set; }
public void Initialize(IEventSource eventSource)
{
eventSource.ErrorRaised += OnError;
eventSource.WarningRaised += OnWarning;
}
public void Shutdown()
{
}
#endregion
void OnError(object sender, BuildErrorEventArgs e)
{
}
void OnWarning(object sender, BuildWarningEventArgs e)
{
}
}
}
}

5
src/Main/Base/Project/Src/Services/ParserService/ParseProjectContent.cs

@ -53,10 +53,7 @@ namespace ICSharpCode.SharpDevelop @@ -53,10 +53,7 @@ namespace ICSharpCode.SharpDevelop
project.ResolveAssemblyReferences();
foreach (ProjectItem item in items) {
if (!initializing) return; // abort initialization
if (item.ItemType == ItemType.Reference
|| item.ItemType == ItemType.ProjectReference
|| item.ItemType == ItemType.COMReference)
{
if (ItemType.ReferenceItemTypes.Contains(item.ItemType)) {
ReferenceProjectItem reference = item as ReferenceProjectItem;
if (reference != null) {
// TODO: Translate me

85
src/SharpDevelop.sln

@ -1,64 +1,66 @@ @@ -1,64 +1,66 @@

Microsoft Visual Studio Solution File, Format Version 11.00
# Visual Studio 10
# SharpDevelop 4.0.0.1
# SharpDevelop 4.0.0.4240
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AddIns", "AddIns", "{14A277EE-7DF1-4529-B639-7D1EF334C1C5}"
ProjectSection(SolutionItems) = postProject
EndProjectSection
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ReflectorAddIn", "AddIns\Misc\ReflectorAddIn\ReflectorAddIn\Project\ReflectorAddIn.csproj", "{8AA421C8-D7AF-4957-9F43-5135328ACB24}"
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AvalonEdit.AddIn", "AddIns\DisplayBindings\AvalonEdit.AddIn\AvalonEdit.AddIn.csproj", "{0162E499-42D0-409B-AA25-EED21F75336B}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "CSharpBinding", "AddIns\BackendBindings\CSharpBinding\Project\CSharpBinding.csproj", "{1F1AC7CD-D154-45BB-8EAF-804CA8055F5A}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "StartPage", "AddIns\Misc\StartPage\Project\StartPage.csproj", "{7D5C266F-D6FF-4D14-B315-0C0FC6C4EF51}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Debugger", "Debugger", "{6604365C-C702-4C10-9BA8-637F1E3D4D0D}"
ProjectSection(SolutionItems) = postProject
EndProjectSection
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Debugger.Core", "AddIns\Misc\Debugger\Debugger.Core\Project\Debugger.Core.csproj", "{1D18D788-F7EE-4585-A23B-34DC8EC63CB8}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Debugger.AddIn", "AddIns\Misc\Debugger\Debugger.AddIn\Project\Debugger.AddIn.csproj", "{EC06F96A-AEEC-49D6-B03D-AB87C6EB674C}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "StartPage", "AddIns\Misc\StartPage\Project\StartPage.csproj", "{7D5C266F-D6FF-4D14-B315-0C0FC6C4EF51}"
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Debugger.Core", "AddIns\Misc\Debugger\Debugger.Core\Project\Debugger.Core.csproj", "{1D18D788-F7EE-4585-A23B-34DC8EC63CB8}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "CSharpBinding", "AddIns\BackendBindings\CSharpBinding\Project\CSharpBinding.csproj", "{1F1AC7CD-D154-45BB-8EAF-804CA8055F5A}"
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ReflectorAddIn", "AddIns\Misc\ReflectorAddIn\ReflectorAddIn\Project\ReflectorAddIn.csproj", "{8AA421C8-D7AF-4957-9F43-5135328ACB24}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AvalonEdit.AddIn", "AddIns\DisplayBindings\AvalonEdit.AddIn\AvalonEdit.AddIn.csproj", "{0162E499-42D0-409B-AA25-EED21F75336B}"
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SearchAndReplace", "AddIns\Misc\SearchAndReplace\Project\SearchAndReplace.csproj", "{9196DD8A-B4D4-4780-8742-C5762E547FC2}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Libraries", "Libraries", "{9421EDF4-9769-4BE9-B5A6-C87DE221D73C}"
ProjectSection(SolutionItems) = postProject
EndProjectSection
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ICSharpCode.AvalonEdit", "Libraries\AvalonEdit\ICSharpCode.AvalonEdit\ICSharpCode.AvalonEdit.csproj", "{6C55B776-26D4-4DB3-A6AB-87E783B2F3D1}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "NRefactory", "Libraries\NRefactory\Project\NRefactory.csproj", "{3A9AE6AA-BC07-4A2F-972C-581E3AE2F195}"
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ICSharpCode.TreeView", "Libraries\SharpTreeView\ICSharpCode.TreeView\ICSharpCode.TreeView.csproj", "{DDE2A481-8271-4EAC-A330-8FA6A38D13D1}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ICSharpCode.TextEditor", "Libraries\ICSharpCode.TextEditor\Project\ICSharpCode.TextEditor.csproj", "{2D18BE89-D210-49EB-A9DD-2246FBB3DF6D}"
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Aga.Controls", "Libraries\TreeViewAdv\Aga.Controls\Aga.Controls.csproj", "{E73BB233-D88B-44A7-A98F-D71EE158381D}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ICSharpCode.Build.Tasks", "Libraries\ICSharpCode.Build.Tasks\Project\ICSharpCode.Build.Tasks.csproj", "{4139CCF6-FB49-4A9D-B2CF-331E9EA3198D}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Aga.Controls", "Libraries\TreeViewAdv\Aga.Controls\Aga.Controls.csproj", "{E73BB233-D88B-44A7-A98F-D71EE158381D}"
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ICSharpCode.TextEditor", "Libraries\ICSharpCode.TextEditor\Project\ICSharpCode.TextEditor.csproj", "{2D18BE89-D210-49EB-A9DD-2246FBB3DF6D}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ICSharpCode.TreeView", "Libraries\SharpTreeView\ICSharpCode.TreeView\ICSharpCode.TreeView.csproj", "{DDE2A481-8271-4EAC-A330-8FA6A38D13D1}"
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "NRefactory", "Libraries\NRefactory\Project\NRefactory.csproj", "{3A9AE6AA-BC07-4A2F-972C-581E3AE2F195}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ICSharpCode.AvalonEdit", "Libraries\AvalonEdit\ICSharpCode.AvalonEdit\ICSharpCode.AvalonEdit.csproj", "{6C55B776-26D4-4DB3-A6AB-87E783B2F3D1}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Main", "Main", "{5A3EBEBA-0560-41C1-966B-23F7D03A5486}"
ProjectSection(SolutionItems) = postProject
EndProjectSection
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ICSharpCode.Core.Presentation", "Main\ICSharpCode.Core.Presentation\ICSharpCode.Core.Presentation.csproj", "{7E4A7172-7FF5-48D0-B719-7CD959DD1AC9}"
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ICSharpCode.Core.WinForms", "Main\ICSharpCode.Core.WinForms\ICSharpCode.Core.WinForms.csproj", "{857CA1A3-FC88-4BE0-AB6A-D1EE772AB288}"
EndProject
Project("{00000000-0000-0000-0000-000000000000}") = "Tools", "Tools\Tools.build", "B13EFF7F-7EA4-4B68-A375-D112105E9182"
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ICSharpCode.SharpDevelop.Dom", "Main\ICSharpCode.SharpDevelop.Dom\Project\ICSharpCode.SharpDevelop.Dom.csproj", "{924EE450-603D-49C1-A8E5-4AFAA31CE6F3}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "StartUp", "Main\StartUp\Project\StartUp.csproj", "{1152B71B-3C05-4598-B20D-823B5D40559E}"
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ICSharpCode.SharpDevelop.Widgets", "Main\ICSharpCode.SharpDevelop.Widgets\Project\ICSharpCode.SharpDevelop.Widgets.csproj", "{8035765F-D51F-4A0C-A746-2FD100E19419}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ICSharpCode.Core", "Main\Core\Project\ICSharpCode.Core.csproj", "{35CEF10F-2D4C-45F2-9DD1-161E0FEC583C}"
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ICSharpCode.SharpDevelop.Sda", "Main\ICSharpCode.SharpDevelop.Sda\ICSharpCode.SharpDevelop.Sda.csproj", "{80318B5F-A25D-45AB-8A95-EF31D2370A4C}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ICSharpCode.SharpDevelop", "Main\Base\Project\ICSharpCode.SharpDevelop.csproj", "{2748AD25-9C63-4E12-877B-4DCE96FBED54}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ICSharpCode.SharpDevelop.Sda", "Main\ICSharpCode.SharpDevelop.Sda\ICSharpCode.SharpDevelop.Sda.csproj", "{80318B5F-A25D-45AB-8A95-EF31D2370A4C}"
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ICSharpCode.Core", "Main\Core\Project\ICSharpCode.Core.csproj", "{35CEF10F-2D4C-45F2-9DD1-161E0FEC583C}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ICSharpCode.SharpDevelop.Widgets", "Main\ICSharpCode.SharpDevelop.Widgets\Project\ICSharpCode.SharpDevelop.Widgets.csproj", "{8035765F-D51F-4A0C-A746-2FD100E19419}"
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "StartUp", "Main\StartUp\Project\StartUp.csproj", "{1152B71B-3C05-4598-B20D-823B5D40559E}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ICSharpCode.SharpDevelop.Dom", "Main\ICSharpCode.SharpDevelop.Dom\Project\ICSharpCode.SharpDevelop.Dom.csproj", "{924EE450-603D-49C1-A8E5-4AFAA31CE6F3}"
Project("{00000000-0000-0000-0000-000000000000}") = "Tools", "Tools\Tools.build", "B13EFF7F-7EA4-4B68-A375-D112105E9182"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ICSharpCode.Core.WinForms", "Main\ICSharpCode.Core.WinForms\ICSharpCode.Core.WinForms.csproj", "{857CA1A3-FC88-4BE0-AB6A-D1EE772AB288}"
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ICSharpCode.Core.Presentation", "Main\ICSharpCode.Core.Presentation\ICSharpCode.Core.Presentation.csproj", "{7E4A7172-7FF5-48D0-B719-7CD959DD1AC9}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
@ -150,29 +152,34 @@ Global @@ -150,29 +152,34 @@ Global
{DDE2A481-8271-4EAC-A330-8FA6A38D13D1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{DDE2A481-8271-4EAC-A330-8FA6A38D13D1}.Release|Any CPU.Build.0 = Release|Any CPU
{DDE2A481-8271-4EAC-A330-8FA6A38D13D1}.Release|Any CPU.ActiveCfg = Release|Any CPU
{9196DD8A-B4D4-4780-8742-C5762E547FC2}.Debug|Any CPU.Build.0 = Debug|Any CPU
{9196DD8A-B4D4-4780-8742-C5762E547FC2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{9196DD8A-B4D4-4780-8742-C5762E547FC2}.Release|Any CPU.Build.0 = Release|Any CPU
{9196DD8A-B4D4-4780-8742-C5762E547FC2}.Release|Any CPU.ActiveCfg = Release|Any CPU
EndGlobalSection
GlobalSection(NestedProjects) = preSolution
{0162E499-42D0-409B-AA25-EED21F75336B} = {14A277EE-7DF1-4529-B639-7D1EF334C1C5}
{1F1AC7CD-D154-45BB-8EAF-804CA8055F5A} = {14A277EE-7DF1-4529-B639-7D1EF334C1C5}
{7D5C266F-D6FF-4D14-B315-0C0FC6C4EF51} = {14A277EE-7DF1-4529-B639-7D1EF334C1C5}
{6604365C-C702-4C10-9BA8-637F1E3D4D0D} = {14A277EE-7DF1-4529-B639-7D1EF334C1C5}
{9196DD8A-B4D4-4780-8742-C5762E547FC2} = {14A277EE-7DF1-4529-B639-7D1EF334C1C5}
{8AA421C8-D7AF-4957-9F43-5135328ACB24} = {14A277EE-7DF1-4529-B639-7D1EF334C1C5}
{EC06F96A-AEEC-49D6-B03D-AB87C6EB674C} = {6604365C-C702-4C10-9BA8-637F1E3D4D0D}
{6604365C-C702-4C10-9BA8-637F1E3D4D0D} = {14A277EE-7DF1-4529-B639-7D1EF334C1C5}
{7D5C266F-D6FF-4D14-B315-0C0FC6C4EF51} = {14A277EE-7DF1-4529-B639-7D1EF334C1C5}
{1F1AC7CD-D154-45BB-8EAF-804CA8055F5A} = {14A277EE-7DF1-4529-B639-7D1EF334C1C5}
{0162E499-42D0-409B-AA25-EED21F75336B} = {14A277EE-7DF1-4529-B639-7D1EF334C1C5}
{1D18D788-F7EE-4585-A23B-34DC8EC63CB8} = {6604365C-C702-4C10-9BA8-637F1E3D4D0D}
{DDE2A481-8271-4EAC-A330-8FA6A38D13D1} = {9421EDF4-9769-4BE9-B5A6-C87DE221D73C}
{E73BB233-D88B-44A7-A98F-D71EE158381D} = {9421EDF4-9769-4BE9-B5A6-C87DE221D73C}
{4139CCF6-FB49-4A9D-B2CF-331E9EA3198D} = {9421EDF4-9769-4BE9-B5A6-C87DE221D73C}
{2D18BE89-D210-49EB-A9DD-2246FBB3DF6D} = {9421EDF4-9769-4BE9-B5A6-C87DE221D73C}
{3A9AE6AA-BC07-4A2F-972C-581E3AE2F195} = {9421EDF4-9769-4BE9-B5A6-C87DE221D73C}
{EC06F96A-AEEC-49D6-B03D-AB87C6EB674C} = {6604365C-C702-4C10-9BA8-637F1E3D4D0D}
{6C55B776-26D4-4DB3-A6AB-87E783B2F3D1} = {9421EDF4-9769-4BE9-B5A6-C87DE221D73C}
{857CA1A3-FC88-4BE0-AB6A-D1EE772AB288} = {5A3EBEBA-0560-41C1-966B-23F7D03A5486}
{924EE450-603D-49C1-A8E5-4AFAA31CE6F3} = {5A3EBEBA-0560-41C1-966B-23F7D03A5486}
{8035765F-D51F-4A0C-A746-2FD100E19419} = {5A3EBEBA-0560-41C1-966B-23F7D03A5486}
{80318B5F-A25D-45AB-8A95-EF31D2370A4C} = {5A3EBEBA-0560-41C1-966B-23F7D03A5486}
{2748AD25-9C63-4E12-877B-4DCE96FBED54} = {5A3EBEBA-0560-41C1-966B-23F7D03A5486}
{35CEF10F-2D4C-45F2-9DD1-161E0FEC583C} = {5A3EBEBA-0560-41C1-966B-23F7D03A5486}
{1152B71B-3C05-4598-B20D-823B5D40559E} = {5A3EBEBA-0560-41C1-966B-23F7D03A5486}
B13EFF7F-7EA4-4B68-A375-D112105E9182 = {5A3EBEBA-0560-41C1-966B-23F7D03A5486}
{3A9AE6AA-BC07-4A2F-972C-581E3AE2F195} = {9421EDF4-9769-4BE9-B5A6-C87DE221D73C}
{2D18BE89-D210-49EB-A9DD-2246FBB3DF6D} = {9421EDF4-9769-4BE9-B5A6-C87DE221D73C}
{4139CCF6-FB49-4A9D-B2CF-331E9EA3198D} = {9421EDF4-9769-4BE9-B5A6-C87DE221D73C}
{E73BB233-D88B-44A7-A98F-D71EE158381D} = {9421EDF4-9769-4BE9-B5A6-C87DE221D73C}
{DDE2A481-8271-4EAC-A330-8FA6A38D13D1} = {9421EDF4-9769-4BE9-B5A6-C87DE221D73C}
{7E4A7172-7FF5-48D0-B719-7CD959DD1AC9} = {5A3EBEBA-0560-41C1-966B-23F7D03A5486}
B13EFF7F-7EA4-4B68-A375-D112105E9182 = {5A3EBEBA-0560-41C1-966B-23F7D03A5486}
{1152B71B-3C05-4598-B20D-823B5D40559E} = {5A3EBEBA-0560-41C1-966B-23F7D03A5486}
{35CEF10F-2D4C-45F2-9DD1-161E0FEC583C} = {5A3EBEBA-0560-41C1-966B-23F7D03A5486}
{2748AD25-9C63-4E12-877B-4DCE96FBED54} = {5A3EBEBA-0560-41C1-966B-23F7D03A5486}
{80318B5F-A25D-45AB-8A95-EF31D2370A4C} = {5A3EBEBA-0560-41C1-966B-23F7D03A5486}
{8035765F-D51F-4A0C-A746-2FD100E19419} = {5A3EBEBA-0560-41C1-966B-23F7D03A5486}
{924EE450-603D-49C1-A8E5-4AFAA31CE6F3} = {5A3EBEBA-0560-41C1-966B-23F7D03A5486}
{857CA1A3-FC88-4BE0-AB6A-D1EE772AB288} = {5A3EBEBA-0560-41C1-966B-23F7D03A5486}
EndGlobalSection
EndGlobal

Loading…
Cancel
Save