Browse Source

Make verbose MSBuild output even more verbose.

Fixed potential deadlock between IProjectContent.ReferencedContents lock and IProject.SyncRoot when switching a project to another target framework.

git-svn-id: svn://svn.sharpdevelop.net/sharpdevelop/trunk@5644 1ccf3a8d-04fe-1044-b7c0-cef0b8235c61
pull/1/head
Daniel Grunwald 15 years ago
parent
commit
08308c5729
  1. 1
      src/Main/Base/Project/Src/Project/MSBuildEngine/MSBuildEngine.cs
  2. 5
      src/Main/Base/Project/Src/Services/ParserService/ParseProjectContent.cs

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

@ -223,6 +223,7 @@ namespace ICSharpCode.SharpDevelop.Project @@ -223,6 +223,7 @@ namespace ICSharpCode.SharpDevelop.Project
this.ReportTargetStartedEvents = true;
this.ReportUnknownEvents = true;
loggers.Add(new SDConsoleLogger(feedbackSink, LoggerVerbosity.Diagnostic));
globalProperties["MSBuildTargetsVerbose"] = "true";
}
//loggers.Add(new BuildLogFileLogger(project.FileName + ".log", LoggerVerbosity.Diagnostic));
foreach (IMSBuildAdditionalLogger loggerProvider in MSBuildEngine.AdditionalMSBuildLoggers) {

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

@ -82,9 +82,12 @@ namespace ICSharpCode.SharpDevelop @@ -82,9 +82,12 @@ namespace ICSharpCode.SharpDevelop
internal void ReInitialize1(IProgressMonitor progressMonitor)
{
var mscorlib = AssemblyParserService.GetRegistryForReference(new ReferenceProjectItem(project, "mscorlib")).Mscorlib;
// don't fetch mscorlib within lock - finding the correct registry might access the project, causing
// a deadlock between IProject.SyncRoot and the ReferencedContents lock
lock (ReferencedContents) {
ReferencedContents.Clear();
AddReferencedContent(AssemblyParserService.GetRegistryForReference(new ReferenceProjectItem(project, "mscorlib")).Mscorlib);
AddReferencedContent(mscorlib);
}
// prevent adding event handler twice
ProjectService.ProjectItemAdded -= OnProjectItemAdded;

Loading…
Cancel
Save