Muszę być w stanie programowo opublikować projekt SSDT. Używam Microsoft.Build do tego, ale nie mogę znaleźć żadnej dokumentacji. Wydaje się dość proste utworzenie pliku .dacpac, ale w jaki sposób powinienem opublikować istniejącą bazę danych lub przynajmniej plik .sql. Chodzi o to, aby zrobić to, co robi, gdy kliknę prawym przyciskiem myszy na projekcie i wybierz opcję publikowania. Należy porównać z wybraną bazą danych i wygenerować skrypt aktualizacyjny.Korzystanie z Microsoft.Build.Evaluation do opublikowania projektu bazy danych (.sqlproj)
To, co mam tak daleko, aby utworzyć .dacpac:
partial class DBDeploy
{
Project project;
internal void publishChanges()
{
Console.WriteLine("Building project " + ProjectPath);
Stopwatch sw = new Stopwatch();
sw.Start();
project = ProjectCollection.GlobalProjectCollection.LoadProject(ProjectPath);
project.Build();
//at this point the .dacpac is built and put in the debug folder for the project
sw.Stop();
Console.WriteLine("Project build Complete. Total time: {0}", sw.Elapsed.ToString());
}
}
Zasadniczo staram się robić co w tym MSBuild Example pokazy, ale w kodzie.
Przepraszam, że to wszystko, co mam. Dezinstalacja na klasach Build jest bardzo słaba. Każda pomoc będzie doceniona.
Dzięki.
Musiałem odwołać się do zespołów "Microsoft.Build" i "Microsoft.Build.Framework', aby ten kod zadziałał. – Sam
Upewnij się, aby sprawdzić wartość zwracaną przez 'Build', aby sprawdzić, czy udało się, czy nie. – Sam
Aby monitorować zdarzenia kompilacji, użyj 'ConfigurableForwardingLogger' i ustaw' BuildEventRedirector' na niestandardowy 'IEventRedirector'. Możesz sprawdzić błędy, sprawdzając czy 'buildEvent' jest' BuildErrorEventArgs'. – Sam