Exemplo n.º 1
0
        public void Compile()
        {
            this.Save();

            MSBuildApp.Execute(this.FileName, null, null, new Dictionary <string, string>()
            {
                { "Configuration", "Debug" },
                { "Platform", "Any CPU" },
                { "OutputPath", @"bin\Debug" }
            }, new ILogger[] { this }, loggerVerbosity);
        }
Exemplo n.º 2
0
        public void VerifyInvalidSchemaItself2
        (
        )
        {
            string invalidSchemaFile       = null;
            string projectFilename         = null;
            string oldValueForMSBuildOldOM = null;

            try
            {
                oldValueForMSBuildOldOM = Environment.GetEnvironmentVariable("MSBuildOldOM");
                Environment.SetEnvironmentVariable("MSBuildOldOM", "");

                // Create schema files in the temp folder
                invalidSchemaFile = FileUtilities.GetTemporaryFile();

                File.WriteAllText(invalidSchemaFile, @"<?xml version=""1.0"" encoding=""UTF-8""?>
<xs:schema targetNamespace=""http://schemas.microsoft.com/developer/msbuild/2003"" xmlns:msb=""http://schemas.microsoft.com/developer/msbuild/2003"" xmlns:xs=""http://www.w3.org/2001/XMLSchema"" elementFormDefault=""qualified"">
    <xs:element name=""Project"">
        <xs:complexType>
            <xs:sequence>
                <xs:group ref=""x"" minOccurs=""0"" maxOccurs=""unbounded""/>
            </xs:sequence>
        </xs:complexType>
    </xs:element>
</xs:schema>

");

                projectFilename = CreateTempFileOnDisk(@"
                    <Project xmlns=`msbuildnamespace`>
                        <Target Name=`Build` />
                    </Project>
                    ");

                string quotedProjectFile = "\"" + projectFilename + "\"";

                Assert.Equal(MSBuildApp.ExitType.InitializationError, MSBuildApp.Execute(@"c:\foo\msbuild.exe " + quotedProjectFile + " /validate:\"" + invalidSchemaFile + "\""));
            }
            finally
            {
                if (invalidSchemaFile != null)
                {
                    File.Delete(invalidSchemaFile);
                }
                if (projectFilename != null)
                {
                    File.Delete(projectFilename);
                }
                Environment.SetEnvironmentVariable("MSBuildOldOM", oldValueForMSBuildOldOM);
            }
        }
        private string RunProject(string aProjectFile, string aParams, bool aSuccessFullBuild)
        {
            // create a writer to save command line output
            MyTextWriter lMyWriter = new MyTextWriter();

            // set it so the output goes to my writer
            Console.SetOut(lMyWriter);
            // get current dir
            string lBinDir = System.IO.Directory.GetCurrentDirectory();
            // create full path to project
            string lProjectFile = System.IO.Directory.GetCurrentDirectory() + @"\Project\" + aProjectFile;

            string lProjPath = Path.GetDirectoryName(lProjectFile);

            // change dir to that project
            Directory.SetCurrentDirectory(lProjPath);
            string lproj = Directory.GetCurrentDirectory();

            if (lproj == "")
            {
                throw new Exception();
            }
            MSBuildApp.ExitType lExitType;
            try
            {
                // use MSBuild class found in MSBuild.EXE assembly
                lExitType = MSBuildApp.Execute("file " + lProjectFile + " " + aParams);
            }
            finally
            {
                Directory.SetCurrentDirectory(lBinDir);
            }
            // get the text of the MSBuild execution
            string s = lMyWriter.Text;

            // save it to a file in the folder
            using (StreamWriter lWriter = new StreamWriter(lBinDir + "\\MSBuild.log"))
                lWriter.Write(s);
            // check to see if there was any errors.
            if (aSuccessFullBuild)
            {
                if (lExitType != MSBuildApp.ExitType.Success)
                {
                    throw new Exception(s);
                }
            }
            return(s);
        }
Exemplo n.º 4
0
        public void VerifyInvalidImportNotCaughtBySchema()
        {
            string oldValueForMSBuildLoadMicrosoftTargetsReadOnly = Environment.GetEnvironmentVariable("MSBuildLoadMicrosoftTargetsReadOnly");

            string[] msbuildTempXsdFilenames = Array.Empty <string>();

            string importedProjectFilename = CreateTempFileOnDisk(@"
                    <Project xmlns=`msbuildnamespace`>
                        <PropertyGroup><UnknownProperty/></PropertyGroup>
                        <Target Name=`Build` />
                    </Project>
                ");

            string projectFilename         = CreateTempFileOnDisk(@"
                    <Project xmlns=`msbuildnamespace`>
                        <Import Project=`{0}` />
                    </Project>

                ", importedProjectFilename);
            string oldValueForMSBuildOldOM = null;

            try
            {
                oldValueForMSBuildOldOM = Environment.GetEnvironmentVariable("MSBuildOldOM");
                Environment.SetEnvironmentVariable("MSBuildOldOM", "");

                // Create schema files in the temp folder
                msbuildTempXsdFilenames = PrepareSchemaFiles();
                string quotedProjectFile = "\"" + projectFilename + "\"";

                Assert.Equal(MSBuildApp.ExitType.Success, MSBuildApp.Execute(@"c:\foo\msbuild.exe " + quotedProjectFile + " /validate:\"" + msbuildTempXsdFilenames[0] + "\""));

                // ProjectSchemaValidationHandler.VerifyProjectSchema
                //    (
                //    projectFilename,
                //    msbuildTempXsdFilenames[0],
                //    @"c:\"
                //    );
            }
            finally
            {
                CleanupSchemaFiles(msbuildTempXsdFilenames);
                File.Delete(projectFilename);
                File.Delete(importedProjectFilename);
                Environment.SetEnvironmentVariable("MSBuildOldOM", oldValueForMSBuildOldOM);
                Environment.SetEnvironmentVariable("MSBuildLoadMicrosoftTargetsReadOnly", oldValueForMSBuildLoadMicrosoftTargetsReadOnly);
            }
        }
Exemplo n.º 5
0
        public void VerifyInvalidSchemaItself1
        (
        )
        {
            string invalidSchemaFile       = null;
            string projectFilename         = null;
            string oldValueForMSBuildOldOM = null;

            try
            {
                oldValueForMSBuildOldOM = Environment.GetEnvironmentVariable("MSBuildOldOM");
                Environment.SetEnvironmentVariable("MSBuildOldOM", "");

                // Create schema files in the temp folder
                invalidSchemaFile = FileUtilities.GetTemporaryFile();

                File.WriteAllText(invalidSchemaFile, "<this_is_invalid_schema_content/>");

                projectFilename = CreateTempFileOnDisk(@"
                    <Project xmlns=`msbuildnamespace`>
                        <Target Name=`Build` />
                    </Project>
                    ");
                string quotedProjectFile = "\"" + projectFilename + "\"";

                Assert.Equal(MSBuildApp.ExitType.InitializationError, MSBuildApp.Execute(@"c:\foo\msbuild.exe " + quotedProjectFile + " /validate:\"" + invalidSchemaFile + "\""));
            }
            finally
            {
                if (projectFilename != null)
                {
                    File.Delete(projectFilename);
                }
                if (invalidSchemaFile != null)
                {
                    File.Delete(invalidSchemaFile);
                }
                Environment.SetEnvironmentVariable("MSBuildOldOM", oldValueForMSBuildOldOM);
            }
        }
Exemplo n.º 6
0
        public void VerifyInvalidProjectSchema
        (
        )
        {
            string[] msbuildTempXsdFilenames = new string[] { };
            string   projectFilename         = null;
            string   oldValueForMSBuildOldOM = null;

            try
            {
                oldValueForMSBuildOldOM = Environment.GetEnvironmentVariable("MSBuildOldOM");
                Environment.SetEnvironmentVariable("MSBuildOldOM", "");

                // Create schema files in the temp folder
                msbuildTempXsdFilenames = PrepareSchemaFiles();

                projectFilename = CreateTempFileOnDisk(@"
                    <Project xmlns=`msbuildnamespace`>
                        <PropertyGroup>
                            <MyInvalidProperty/>
                        </PropertyGroup>
                        <Target Name=`Build` />
                    </Project>
                    ");
                string quotedProjectFilename = "\"" + projectFilename + "\"";

                Assert.Equal(MSBuildApp.ExitType.InitializationError, MSBuildApp.Execute(@"c:\foo\msbuild.exe " + quotedProjectFilename + " /validate:\"" + msbuildTempXsdFilenames[0] + "\""));
            }
            finally
            {
                if (projectFilename != null)
                {
                    File.Delete(projectFilename);
                }
                CleanupSchemaFiles(msbuildTempXsdFilenames);
                Environment.SetEnvironmentVariable("MSBuildOldOM", oldValueForMSBuildOldOM);
            }
        }
Exemplo n.º 7
0
        public void VerifyValidProjectSchema
        (
        )
        {
            string[] msbuildTempXsdFilenames = new string[] { };
            string   projectFilename         = CreateTempFileOnDisk(@"
                    <Project xmlns=`msbuildnamespace`>
                        <Target Name=`Build` />
                    </Project>
                    ");
            string   oldValueForMSBuildOldOM = null;

            try
            {
                oldValueForMSBuildOldOM = Environment.GetEnvironmentVariable("MSBuildOldOM");
                Environment.SetEnvironmentVariable("MSBuildOldOM", "");

                // Create schema files in the temp folder
                msbuildTempXsdFilenames = PrepareSchemaFiles();
                string quotedProjectFile = "\"" + projectFilename + "\"";

                Assert.Equal(MSBuildApp.ExitType.Success, MSBuildApp.Execute(@"c:\foo\msbuild.exe " + quotedProjectFile + " /validate:\"" + msbuildTempXsdFilenames[0] + "\""));

                //ProjectSchemaValidationHandler.VerifyProjectSchema
                //    (
                //    projectFilename,
                //    msbuildTempXsdFilenames[0],
                //    @"c:\"
                //    );
            }
            finally
            {
                File.Delete(projectFilename);
                CleanupSchemaFiles(msbuildTempXsdFilenames);
                Environment.SetEnvironmentVariable("MSBuildOldOM", oldValueForMSBuildOldOM);
            }
        }