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); }
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); }
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); } }
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); } }
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); } }
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); } }