Esempio n. 1
0
        // BatchMergeXaml has a *ton* of parameters, making defining it programmatically difficult.
        // To get around that, this provides a system where you can dump its parameters from a binlog
        // to a file and then read those parameters.  To do that, save a build to a binlog (msbuild /bl
        // via command line or via the Project System Tools extension for VS at
        // https://marketplace.visualstudio.com/items?itemName=VisualStudioProductTeam.ProjectSystemTools),
        // then open it up using the binlog viewer (https://msbuildlog.com/), search for "$task BatchMergeXaml",
        // click on "Parameters", Ctrl+C to copy the whole thing, paste that to a text file, and then point this
        // at that text file.
        private static BatchMergeXaml GetBatchMergeXamlTaskFromParameters(string parametersFilePath)
        {
            BatchMergeXaml task = new BatchMergeXaml();

            string[] fileLines = File.ReadAllLines(parametersFilePath);

            for (int i = 0; i < fileLines.Length; i++)
            {
                if (fileLines[i].StartsWith("    OutputDirectory"))
                {
                    task.OutputDirectory = fileLines[i].Split('=')[1].Trim();
                }
                else if (fileLines[i].StartsWith("    PagesFilteredBy"))
                {
                    task.PagesFilteredBy = fileLines[i].Split('=')[1].Trim();
                }
                else if (fileLines[i].StartsWith("    PostfixForGeneratedFile"))
                {
                    task.PostfixForGeneratedFile = fileLines[i].Split('=')[1].Trim();
                }
                else if (fileLines[i].StartsWith("    TlogReadFilesOutputPath"))
                {
                    task.TlogReadFilesOutputPath = fileLines[i].Split('=')[1].Trim();
                }
                else if (fileLines[i].StartsWith("    TlogWriteFilesOutputPath"))
                {
                    task.TlogWriteFilesOutputPath = fileLines[i].Split('=')[1].Trim();
                }
                else if (fileLines[i] == "    RS1Pages")
                {
                    task.RS1Pages = GetTaskItemsFromLines(fileLines, ref i);
                }
                else if (fileLines[i] == "    RS2Pages")
                {
                    task.RS2Pages = GetTaskItemsFromLines(fileLines, ref i);
                }
                else if (fileLines[i] == "    RS3Pages")
                {
                    task.RS3Pages = GetTaskItemsFromLines(fileLines, ref i);
                }
                else if (fileLines[i] == "    RS4Pages")
                {
                    task.RS4Pages = GetTaskItemsFromLines(fileLines, ref i);
                }
                else if (fileLines[i] == "    RS5Pages")
                {
                    task.RS5Pages = GetTaskItemsFromLines(fileLines, ref i);
                }
                else if (fileLines[i] == "    N19H1Pages")
                {
                    task.N19H1Pages = GetTaskItemsFromLines(fileLines, ref i);
                }
                else if (fileLines[i] == "    T21H1Pages")
                {
                    task.T21H1Pages = GetTaskItemsFromLines(fileLines, ref i);
                }
            }

            return(task);
        }
Esempio n. 2
0
        private static void TestBatchMergeXaml(string projectRoot)
        {
            BatchMergeXaml test = GetBatchMergeXamlTaskFromParameters(Path.Combine(Environment.GetEnvironmentVariable("LOCALAPPDATA"), "Temp", "BatchMergeXamlParams.txt"));

            test.Execute();
        }