diff options
author | Ankit Jain <radical@gmail.com> | 2019-04-03 17:12:53 +0300 |
---|---|---|
committer | Rodrigo Moya <rodrigo.moya@xamarin.com> | 2019-04-05 20:46:17 +0300 |
commit | c5ed62a81b859bee512ade901bd8fa130141ac27 (patch) | |
tree | c12fb3eb589976dd5345022ea796eefcc6b38693 /main/src/core/MonoDevelop.Core/MonoDevelop.Projects.MSBuild/RemoteBuildEngineManager.cs | |
parent | d48091aec7f2113fb2811da21c9302f9c1ff8539 (diff) |
[msbuild] Fix possible NRE
- and save only at the end.
Diffstat (limited to 'main/src/core/MonoDevelop.Core/MonoDevelop.Projects.MSBuild/RemoteBuildEngineManager.cs')
-rw-r--r-- | main/src/core/MonoDevelop.Core/MonoDevelop.Projects.MSBuild/RemoteBuildEngineManager.cs | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/main/src/core/MonoDevelop.Core/MonoDevelop.Projects.MSBuild/RemoteBuildEngineManager.cs b/main/src/core/MonoDevelop.Core/MonoDevelop.Projects.MSBuild/RemoteBuildEngineManager.cs index 5e18e203db..0d012cc043 100644 --- a/main/src/core/MonoDevelop.Core/MonoDevelop.Projects.MSBuild/RemoteBuildEngineManager.cs +++ b/main/src/core/MonoDevelop.Core/MonoDevelop.Projects.MSBuild/RemoteBuildEngineManager.cs @@ -561,7 +561,7 @@ namespace MonoDevelop.Projects.MSBuild ConfigFileUtilities.SetOrAppendSubelementAttributeValue (runtimeElement, "AppContextSwitchOverrides", "value", "Switch.System.IO.UseLegacyPathHandling=false"); } - foreach (var toolset in doc.Root.Elements ("msbuildToolsets").FirstOrDefault ()?.Elements ("toolset")) { + foreach (var toolset in doc.Root.Elements ("msbuildToolsets").FirstOrDefault ()?.Elements ("toolset") ?? Enumerable.Empty<XElement> ()) { // This is required for MSBuild to properly load the searchPaths element (@radical knows why) SetMSBuildConfigProperty (toolset, "MSBuildBinPath", binDir, append: false, insertBefore: true); @@ -595,7 +595,7 @@ namespace MonoDevelop.Projects.MSBuild SetMSBuildConfigProperty (toolset, path.Property, path.Path); } - var projectImportSearchPaths = doc.Root.Elements ("msbuildToolsets").FirstOrDefault ()?.Elements ("toolset")?.FirstOrDefault ()?.Element ("projectImportSearchPaths"); + var projectImportSearchPaths = toolset.Element ("projectImportSearchPaths"); if (projectImportSearchPaths != null) { var os = Platform.IsMac ? "osx" : Platform.IsWindows ? "windows" : "unix"; XElement searchPaths = projectImportSearchPaths.Elements ("searchPaths").FirstOrDefault (sp => sp.Attribute ("os")?.Value == os); @@ -607,9 +607,10 @@ namespace MonoDevelop.Projects.MSBuild foreach (var path in MSBuildProjectService.GetProjectImportSearchPaths (runtime, false)) SetMSBuildConfigProperty (searchPaths, path.Property, path.Path, append: true, insertBefore: false); } - doc.Save (destinationConfigFile); } + doc.Save (destinationConfigFile); + // Update the sdk list for the MD resolver SdkInfo.SaveConfig (mdResolverConfig, MSBuildProjectService.FindRegisteredSdks ()); } |