Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mono/monodevelop.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/main/src
diff options
context:
space:
mode:
authorLluis Sanchez <lluis@xamarin.com>2015-10-27 15:13:42 +0300
committerLluis Sanchez <lluis@xamarin.com>2015-10-27 15:13:42 +0300
commitd7cccc4554ed40c50499ca8e1a2fb052654eb51b (patch)
treee8c3f6eb32082189585d1f74427ad21d6c456ecd /main/src
parentc3b47b07c814588245aa050bd9f46870a3c93f29 (diff)
[Core] Fix evaluation of Exists condition
Convert path from msbuild format before checking if it exists. Also propagate project reference through evaluation contexts. Fixes bug #35260
Diffstat (limited to 'main/src')
-rw-r--r--main/src/core/MonoDevelop.Core/MonoDevelop.Projects.Formats.MSBuild.Conditions/ConditionFunctionExpression.cs9
-rw-r--r--main/src/core/MonoDevelop.Core/MonoDevelop.Projects.Formats.MSBuild/MSBuildEvaluationContext.cs1
2 files changed, 5 insertions, 5 deletions
diff --git a/main/src/core/MonoDevelop.Core/MonoDevelop.Projects.Formats.MSBuild.Conditions/ConditionFunctionExpression.cs b/main/src/core/MonoDevelop.Core/MonoDevelop.Projects.Formats.MSBuild.Conditions/ConditionFunctionExpression.cs
index 196d3ee691..8a9c7f211c 100644
--- a/main/src/core/MonoDevelop.Core/MonoDevelop.Projects.Formats.MSBuild.Conditions/ConditionFunctionExpression.cs
+++ b/main/src/core/MonoDevelop.Core/MonoDevelop.Projects.Formats.MSBuild.Conditions/ConditionFunctionExpression.cs
@@ -104,13 +104,12 @@ namespace MonoDevelop.Projects.Formats.MSBuild.Conditions {
static bool Exists (string file, IExpressionContext context)
{
string directory = null;
-
+
if (context.FullFileName != String.Empty)
directory = Path.GetDirectoryName (context.FullFileName);
-
- if (!Path.IsPathRooted (file) && directory != null && directory != String.Empty)
- file = Path.Combine (directory, file);
-
+
+ file = MSBuildProjectService.FromMSBuildPath (directory, file);
+
return File.Exists (file) || Directory.Exists (file);
}
diff --git a/main/src/core/MonoDevelop.Core/MonoDevelop.Projects.Formats.MSBuild/MSBuildEvaluationContext.cs b/main/src/core/MonoDevelop.Core/MonoDevelop.Projects.Formats.MSBuild/MSBuildEvaluationContext.cs
index 978bfc1d3e..64c7cb1bd0 100644
--- a/main/src/core/MonoDevelop.Core/MonoDevelop.Projects.Formats.MSBuild/MSBuildEvaluationContext.cs
+++ b/main/src/core/MonoDevelop.Core/MonoDevelop.Projects.Formats.MSBuild/MSBuildEvaluationContext.cs
@@ -57,6 +57,7 @@ namespace MonoDevelop.Projects.Formats.MSBuild
public MSBuildEvaluationContext (MSBuildEvaluationContext parentContext)
{
this.parentContext = parentContext;
+ this.project = parentContext.project;
}
internal void InitEvaluation (MSBuildProject project)