ProjectReader.GetToolsDirectory C# (CSharp) Method

GetToolsDirectory() public static method

public static GetToolsDirectory ( string projectFile ) : string
projectFile string
return string
    public static string GetToolsDirectory(string projectFile)
    {
        var xDocument = ReadXDocument(projectFile);
        var elements =
            from el in xDocument.BuildDescendants("UsingTask")
            where (string) el.Attribute("TaskName") == "NotifyPropertyWeaverMsBuildTask.WeavingTask"
            select el.Attribute("AssemblyFile");
        var firstOrDefault = elements.FirstOrDefault();
        if (firstOrDefault != null)
        {
            var value = firstOrDefault.Value;
            return value.Substring(0, value.IndexOf("NotifyPropertyWeaverMsBuildTask.dll", StringComparison.OrdinalIgnoreCase));
        }
        return null;
    }

Usage Example

Ejemplo n.º 1
0
    public void ProcessTaskFile(Project project)
    {
        var toolsDirectory = ProjectReader.GetToolsDirectory(project.FullName);

        if (toolsDirectory == null)
        {
            return;
        }

        var directoryInfo = fullPathResolver.GetFullPath(toolsDirectory, project);
        var targetFile    = new FileInfo(Path.Combine(directoryInfo.FullName, "Costura.dll"));

        if (!targetFile.Exists)
        {
            return;
        }
        if (VersionChecker.IsVersionNewer(targetFile))
        {
            taskFileReplacer.AddFile(directoryInfo);
        }
    }