mono / monodevelop

MonoDevelop is a cross platform .NET IDE
http://www.monodevelop.com
2.84k stars 1.02k forks source link

Revert "Revert "Merge pull request #8999 from mono/csproj-cleanups"" #9437

Closed Therzok closed 4 years ago

Therzok commented 4 years ago

This reverts commit 846240c66c6ae362ab2827ac23f8d18b72cf4c34.

Therzok commented 4 years ago

We can now apply this due to https://github.com/mono/monodevelop/pull/9110

Therzok commented 4 years ago

Weird error on nuget restore

ERROR [2019-12-07 21:44:51Z]: PackageManagementStartupHandler error
Microsoft.Build.Exceptions.InvalidProjectFileException: Can not evaluate "$(IsMac)" to bool.
  at MonoDevelop.Projects.MSBuild.Conditions.ConditionParser.ParseAndEvaluate (System.String condition, MonoDevelop.Projects.MSBuild.Conditions.IExpressionContext context) [0x0001d] in /Users/runner/runners/2.161.1/work/1/s/monodevelop/main/src/core/MonoDevelop.Core/MonoDevelop.Projects.MSBuild.Conditions/ConditionParser.cs:60 
  at MonoDevelop.Projects.DotNetProject.OnGetReferencedItems (MonoDevelop.Projects.ConfigurationSelector configuration) [0x00040] in /Users/runner/runners/2.161.1/work/1/s/monodevelop/main/src/core/MonoDevelop.Core/MonoDevelop.Projects/DotNetProject.cs:908 
  at MonoDevelop.Projects.SolutionItem+DefaultMSBuildItemExtension.OnGetReferencedItems (MonoDevelop.Projects.ConfigurationSelector configuration) [0x00000] in /Users/runner/runners/2.161.1/work/1/s/monodevelop/main/src/core/MonoDevelop.Core/MonoDevelop.Projects/SolutionItem.cs:1591 
  at MonoDevelop.Projects.SolutionItemExtension.OnGetReferencedItems (MonoDevelop.Projects.ConfigurationSelector configuration) [0x00000] in /Users/runner/runners/2.161.1/work/1/s/monodevelop/main/src/core/MonoDevelop.Core/MonoDevelop.Projects/SolutionItemExtension.cs:139 
  at MonoDevelop.Projects.SolutionItemExtension.OnGetReferencedItems (MonoDevelop.Projects.ConfigurationSelector configuration) [0x00000] in /Users/runner/runners/2.161.1/work/1/s/monodevelop/main/src/core/MonoDevelop.Core/MonoDevelop.Projects/SolutionItemExtension.cs:139 
  at MonoDevelop.Projects.SolutionItemExtension.OnGetReferencedItems (MonoDevelop.Projects.ConfigurationSelector configuration) [0x00000] in /Users/runner/runners/2.161.1/work/1/s/monodevelop/main/src/core/MonoDevelop.Core/MonoDevelop.Projects/SolutionItemExtension.cs:139 
  at MonoDevelop.Projects.SolutionItemExtension.OnGetReferencedItems (MonoDevelop.Projects.ConfigurationSelector configuration) [0x00000] in /Users/runner/runners/2.161.1/work/1/s/monodevelop/main/src/core/MonoDevelop.Core/MonoDevelop.Projects/SolutionItemExtension.cs:139 
  at MonoDevelop.Projects.SolutionItemExtension.OnGetReferencedItems (MonoDevelop.Projects.ConfigurationSelector configuration) [0x00000] in /Users/runner/runners/2.161.1/work/1/s/monodevelop/main/src/core/MonoDevelop.Core/MonoDevelop.Projects/SolutionItemExtension.cs:139 
  at MonoDevelop.Projects.SolutionItemExtension.OnGetReferencedItems (MonoDevelop.Projects.ConfigurationSelector configuration) [0x00000] in /Users/runner/runners/2.161.1/work/1/s/monodevelop/main/src/core/MonoDevelop.Core/MonoDevelop.Projects/SolutionItemExtension.cs:139 
  at MonoDevelop.Projects.SolutionItemExtension.OnGetReferencedItems (MonoDevelop.Projects.ConfigurationSelector configuration) [0x00000] in /Users/runner/runners/2.161.1/work/1/s/monodevelop/main/src/core/MonoDevelop.Core/MonoDevelop.Projects/SolutionItemExtension.cs:139 
  at MonoDevelop.Projects.SolutionItemExtension.OnGetReferencedItems (MonoDevelop.Projects.ConfigurationSelector configuration) [0x00000] in /Users/runner/runners/2.161.1/work/1/s/monodevelop/main/src/core/MonoDevelop.Core/MonoDevelop.Projects/SolutionItemExtension.cs:139 
  at MonoDevelop.Projects.SolutionItemExtension.OnGetReferencedItems (MonoDevelop.Projects.ConfigurationSelector configuration) [0x00000] in /Users/runner/runners/2.161.1/work/1/s/monodevelop/main/src/core/MonoDevelop.Core/MonoDevelop.Projects/SolutionItemExtension.cs:139 
  at MonoDevelop.Projects.SolutionItemExtension.OnGetReferencedItems (MonoDevelop.Projects.ConfigurationSelector configuration) [0x00000] in /Users/runner/runners/2.161.1/work/1/s/monodevelop/main/src/core/MonoDevelop.Core/MonoDevelop.Projects/SolutionItemExtension.cs:139 
  at MonoDevelop.Projects.SolutionItemExtension.OnGetReferencedItems (MonoDevelop.Projects.ConfigurationSelector configuration) [0x00000] in /Users/runner/runners/2.161.1/work/1/s/monodevelop/main/src/core/MonoDevelop.Core/MonoDevelop.Projects/SolutionItemExtension.cs:139 
  at MonoDevelop.Projects.SolutionItemExtension.OnGetReferencedItems (MonoDevelop.Projects.ConfigurationSelector configuration) [0x00000] in /Users/runner/runners/2.161.1/work/1/s/monodevelop/main/src/core/MonoDevelop.Core/MonoDevelop.Projects/SolutionItemExtension.cs:139 
  at MonoDevelop.Projects.SolutionItemExtension.OnGetReferencedItems (MonoDevelop.Projects.ConfigurationSelector configuration) [0x00000] in /Users/runner/runners/2.161.1/work/1/s/monodevelop/main/src/core/MonoDevelop.Core/MonoDevelop.Projects/SolutionItemExtension.cs:139 
  at MonoDevelop.Projects.SolutionItemExtension.OnGetReferencedItems (MonoDevelop.Projects.ConfigurationSelector configuration) [0x00000] in /Users/runner/runners/2.161.1/work/1/s/monodevelop/main/src/core/MonoDevelop.Core/MonoDevelop.Projects/SolutionItemExtension.cs:139 
  at MonoDevelop.Projects.SolutionItemExtension.OnGetReferencedItems (MonoDevelop.Projects.ConfigurationSelector configuration) [0x00000] in /Users/runner/runners/2.161.1/work/1/s/monodevelop/main/src/core/MonoDevelop.Core/MonoDevelop.Projects/SolutionItemExtension.cs:139 
  at MonoDevelop.Projects.SolutionItemExtension.OnGetReferencedItems (MonoDevelop.Projects.ConfigurationSelector configuration) [0x00000] in /Users/runner/runners/2.161.1/work/1/s/monodevelop/main/src/core/MonoDevelop.Core/MonoDevelop.Projects/SolutionItemExtension.cs:139 
  at MonoDevelop.Projects.SolutionItemExtension.OnGetReferencedItems (MonoDevelop.Projects.ConfigurationSelector configuration) [0x00000] in /Users/runner/runners/2.161.1/work/1/s/monodevelop/main/src/core/MonoDevelop.Core/MonoDevelop.Projects/SolutionItemExtension.cs:139 
  at MonoDevelop.Projects.SolutionItemExtension.OnGetReferencedItems (MonoDevelop.Projects.ConfigurationSelector configuration) [0x00000] in /Users/runner/runners/2.161.1/work/1/s/monodevelop/main/src/core/MonoDevelop.Core/MonoDevelop.Projects/SolutionItemExtension.cs:139 
  at MonoDevelop.Projects.SolutionItemExtension.OnGetReferencedItems (MonoDevelop.Projects.ConfigurationSelector configuration) [0x00000] in /Users/runner/runners/2.161.1/work/1/s/monodevelop/main/src/core/MonoDevelop.Core/MonoDevelop.Projects/SolutionItemExtension.cs:139 
  at MonoDevelop.Projects.SolutionItemExtension.OnGetReferencedItems (MonoDevelop.Projects.ConfigurationSelector configuration) [0x00000] in /Users/runner/runners/2.161.1/work/1/s/monodevelop/main/src/core/MonoDevelop.Core/MonoDevelop.Projects/SolutionItemExtension.cs:139 
  at MonoDevelop.Projects.SolutionItem.GetReferencedItems (MonoDevelop.Projects.ConfigurationSelector configuration) [0x00000] in /Users/runner/runners/2.161.1/work/1/s/monodevelop/main/src/core/MonoDevelop.Core/MonoDevelop.Projects/SolutionItem.cs:389 
  at MonoDevelop.Projects.SolutionItem.Insert[T] (System.Int32 index, System.Collections.Generic.IList`1[T] allItems, System.Collections.Generic.List`1[T] sortedItems, System.Boolean[] inserted, System.Boolean[] triedToInsert, MonoDevelop.Projects.ConfigurationSelector solutionConfiguration) [0x00019] in /Users/runner/runners/2.161.1/work/1/s/monodevelop/main/src/core/MonoDevelop.Core/MonoDevelop.Projects/SolutionItem.cs:845 
  at MonoDevelop.Projects.SolutionItem.Insert[T] (System.Int32 index, System.Collections.Generic.IList`1[T] allItems, System.Collections.Generic.List`1[T] sortedItems, System.Boolean[] inserted, System.Boolean[] triedToInsert, MonoDevelop.Projects.ConfigurationSelector solutionConfiguration) [0x00051] in /Users/runner/runners/2.161.1/work/1/s/monodevelop/main/src/core/MonoDevelop.Core/MonoDevelop.Projects/SolutionItem.cs:850 
  at MonoDevelop.Projects.SolutionItem.Insert[T] (System.Int32 index, System.Collections.Generic.IList`1[T] allItems, System.Collections.Generic.List`1[T] sortedItems, System.Boolean[] inserted, System.Boolean[] triedToInsert, MonoDevelop.Projects.ConfigurationSelector solutionConfiguration) [0x00051] in /Users/runner/runners/2.161.1/work/1/s/monodevelop/main/src/core/MonoDevelop.Core/MonoDevelop.Projects/SolutionItem.cs:850 
  at MonoDevelop.Projects.SolutionItem.TopologicalSort[T] (System.Collections.Generic.IEnumerable`1[T] items, MonoDevelop.Projects.ConfigurationSelector configuration) [0x0003a] in /Users/runner/runners/2.161.1/work/1/s/monodevelop/main/src/core/MonoDevelop.Core/MonoDevelop.Projects/SolutionItem.cs:832 
  at MonoDevelop.Projects.Solution.GetAllSolutionItemsWithTopologicalSort[T] (MonoDevelop.Projects.ConfigurationSelector configuration) [0x0000c] in /Users/runner/runners/2.161.1/work/1/s/monodevelop/main/src/core/MonoDevelop.Core/MonoDevelop.Projects/Solution.cs:446 
  at MonoDevelop.Projects.Solution.GetAllProjectsWithTopologicalSort (MonoDevelop.Projects.ConfigurationSelector configuration) [0x00000] in /Users/runner/runners/2.161.1/work/1/s/monodevelop/main/src/core/MonoDevelop.Core/MonoDevelop.Projects/Solution.cs:451 
  at MonoDevelop.PackageManagement.MonoDevelopSolutionManager.GetAllDotNetProjectsUsingReverseTopologicalSort (MonoDevelop.Projects.Solution solution, MonoDevelop.Projects.ConfigurationSelector config) [0x00000] in /Users/runner/runners/2.161.1/work/1/s/monodevelop/main/src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement/MonoDevelopSolutionManager.cs:115 
  at MonoDevelop.PackageManagement.MonoDevelopSolutionManager+<GetNuGetProjects>d__58.MoveNext () [0x00033] in /Users/runner/runners/2.161.1/work/1/s/monodevelop/main/src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement/MonoDevelopSolutionManager.cs:102 
  at System.Collections.Generic.List`1[T].AddEnumerable (System.Collections.Generic.IEnumerable`1[T] enumerable) [0x00059] in /Users/builder/jenkins/workspace/build-package-osx-mono/2019-08/external/bockbuild/builds/mono-x64/external/corefx/src/Common/src/CoreLib/System/Collections/Generic/List.cs:1108 
  at System.Collections.Generic.List`1[T]..ctor (System.Collections.Generic.IEnumerable`1[T] collection) [0x00062] in /Users/builder/jenkins/workspace/build-package-osx-mono/2019-08/external/bockbuild/builds/mono-x64/external/corefx/src/Common/src/CoreLib/System/Collections/Generic/List.cs:87 
  at System.Linq.Enumerable.ToList[TSource] (System.Collections.Generic.IEnumerable`1[T] source) [0x0000e] in /Users/builder/jenkins/workspace/build-package-osx-mono/2019-08/external/bockbuild/builds/mono-x64/external/corefx/src/System.Linq/src/System/Linq/ToCollection.cs:30 
  at MonoDevelop.PackageManagement.MonoDevelopSolutionManager.GetNuGetProjectsAsync () [0x00008] in /Users/runner/runners/2.161.1/work/1/s/monodevelop/main/src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement/MonoDevelopSolutionManager.cs:94 
  at MonoDevelop.PackageManagement.RestoreAndCheckForUpdatesAction.PrepareForExecute () [0x00011] in /Users/runner/runners/2.161.1/work/1/s/monodevelop/main/src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement/RestoreAndCheckForUpdatesAction.cs:70 
  at MonoDevelop.PackageManagement.RestoreAndCheckForUpdatesAction.HasMissingPackages (System.Threading.CancellationToken cancellationToken) [0x0002c] in /Users/runner/runners/2.161.1/work/1/s/monodevelop/main/src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement/RestoreAndCheckForUpdatesAction.cs:120 
  at MonoDevelop.PackageManagement.Commands.PackageManagementStartupHandler.RestoreAndCheckForUpdates (MonoDevelop.Projects.Solution solution) [0x0006a] in /Users/runner/runners/2.161.1/work/1/s/monodevelop/main/src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement.Commands/PackageManagementStartupHandler.cs:106 
  at MonoDevelop.PackageManagement.Commands.PackageManagementStartupHandler.OnSolutionLoaded (MonoDevelop.Projects.Solution solution) [0x0002e] in /Users/runner/runners/2.161.1/work/1/s/monodevelop/main/src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement.Commands/PackageManagementStartupHandler.cs:61 
mrward commented 4 years ago

The project model does not support all conditions when checking reference conditions.

The ProjectParserContext is used when evaluating the condition on the Reference. However this only supports Configuration and Platform properties.

May have to do something similar to this other pull request where the MSBuildEvaluationContext is used. Note that this may have a performance impact so we may want to check before and after changing the code. Also MSBuildEvaluationContext is not thread safe currently (addressed in the other pull request).