Potrzebuję zbudować program programowo dla .csproj, który tworzę w locie. Podczas wyszukiwania w Google znalazłem klasy i API dostarczone przez MS dla MSBuild Engine. Za pomocą tych informacji tworzę proces, który uruchamia msbuild.exe, a następnie odczytuje wynik, ale teraz chcę użyć przestrzeni nazw Microsoft.Build.Execution
do zbudowania projektu. To jest mój program:Budowanie programowo projektu
public class Compiler
{
private static string locationOfMSBuilldEXE = "";
public static void Build(string msbuildFileName)
{
BuildManager manager = BuildManager.DefaultBuildManager;
ProjectInstance projectInstance = new ProjectInstance(msbuildFileName);
var result = manager.Build(new BuildParameters()
{
DetailedSummary = true
},
new BuildRequestData(projectInstance, new string[] { "Build" }));
var buildResult = result.ResultsByTarget["Build"];
var buildResultItems = buildResult.Items;
string s = "";
}
}
Wyniki pokazują, że to jest budowanie porządku, ale trzeba znać szczegółowe wyjście z kompilacji oraz sposobu, żeby go zobaczyć. Byłoby bardzo pomocne, gdyby ktoś mógł podać mi link do dobrego samouczka lub książki na temat MSBuild.
thankx .. można również powiedzieć moim gdzie znaleźć dobry poradnik dla tego samego zestawu nazw? –
@Parv - inne niż dokumentacja (która moim zdaniem jest doskonała), możesz spróbować tego http://www.amazon.com/Inside-Microsoft%C2%AE-Build-Engine-Pro-Developer/dp/0735626286 –
Są tylko dwie książki poświęcone MSBuild, o których jestem świadomy, i oba są dobre (i sprawdzone przez programistów): (1) Wspomniana wyżej książka MSPress - ale link jest do pierwszej edycji, zdobądź drugą wydanie, które obejmuje 4.0 funkcje; (2) Wskazówki i triki MSBuild - szukaj w Amazon - to bardzo zaawansowany poradnik. Dokumentacja MSDN jest dość ograniczona, obawiam się. –