public static bool BuildProject(string projectPath) { bool success = false; CultureInfo ci = CultureInfo.InvariantCulture; Engine engine = new Engine(); engine.BinPath = System.Environment.GetFolderPath(System.Environment.SpecialFolder.System) + @"\..\Microsoft.NET\Framework\v4.0.30319"; try { success = engine.BuildProjectFile(projectPath); } finally { engine.UnloadAllProjects(); } return success; }
public bool BuildProject(string projectPath) { bool success = false; CultureInfo ci = CultureInfo.InvariantCulture; Engine engine = new Engine(); engine.BinPath = System.Environment.GetFolderPath(System.Environment.SpecialFolder.System) + @"\..\Microsoft.NET\Framework\v4.0.30319"; try { success = engine.BuildProjectFile(projectPath); } catch(ArgumentException) { throw new System.IO.FileNotFoundException("The specified project to build not found!"); } finally { engine.UnloadAllProjects(); } return success; }
public void MalformedProjectDoesNotGetAddedToEngine ( ) { Engine myEngine = new Engine(@"c:\"); Project myProject = myEngine.CreateNewProject(); // Create a temp file to be used as our project file. string projectFile = Path.GetTempFileName(); try { // Write some garbage into a project file. File.WriteAllText(projectFile, "blah"); Assertion.AssertNull("Engine should not know about project before project has been loaded", myEngine.GetLoadedProject(projectFile)); int exceptionCount = 0; // Load the garbage project file. We should get an exception. try { myProject.Load(projectFile); } catch (InvalidProjectFileException) { exceptionCount++; } Assertion.AssertEquals("Should have received invalid project file exception.", 1, exceptionCount); Assertion.AssertNull("Engine should not know about project if project load failed.", myEngine.GetLoadedProject(projectFile)); } finally { // Get a little extra code coverage myEngine.UnregisterAllLoggers(); myEngine.UnloadAllProjects(); File.Delete(projectFile); } }
/// <summary> /// MSDeploy web role project file. /// </summary> /// <param name="csprojPath">Full path to web role .csproj file</param> /// <param name="msDeployDir">Temporary packageTmp folder</param> /// <returns>MsDeploy success status</returns> public static bool MsDeploy(string csprojPath, string msDeployDir) { Console.WriteLine(" Verifying csproj path..."); try { var csprojFileInfo = new FileInfo(csprojPath); if (!csprojFileInfo.Exists || !csprojFileInfo.Name.EndsWith(".csproj")) { Console.WriteLine(" csproj file could not be found at: " + csprojPath); return false; } Console.WriteLine(" csproj found."); Console.WriteLine(" Building project..."); var engine = new Engine(); var csprojParentDir = csprojFileInfo.Directory; var logger = new FileLogger { Parameters = "logfile=" + csprojParentDir + @"\publish.log" }; engine.RegisterLogger(logger); var buildPropGroup = new BuildPropertyGroup(); buildPropGroup.SetProperty("OutDir", msDeployDir); var deployOnBuildSuccess = engine.BuildProjectFile(csprojPath, new[] { "Rebuild" }, buildPropGroup); if (deployOnBuildSuccess) Console.WriteLine(" Successfully MsDeploy project."); else Console.WriteLine(" Build failed. Check " + csprojParentDir + @"\publish.log for details."); engine.UnloadAllProjects(); engine.UnregisterAllLoggers(); return deployOnBuildSuccess; } catch (Exception ex) { Console.WriteLine(" " + ex.GetType() + ": " + ex.Message); return false; } }