Мне нужно иметь возможность публиковать проект SSDT программно. Я использую Microsoft.Build для этого, но не могу найти никакой документации. Кажется довольно простым создать .dacpac, но как я могу либо опубликовать существующую базу данных, либо, по крайней мере, в файл .sql. Идея состоит в том, чтобы заставить ее делать то, что она делает, когда я нажимаю правой кнопкой мыши на проекте и выбираю публикацию. Он должен сравниваться с выбранной базой данных и генерировать обновление script.
Это то, что я до сих пор создавал .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());
}
}
По существу, я пытаюсь сделать то, что показывает этот пример MSBuild, но в коде.
Извините, что это все, что у меня есть. Докетирование по классам Build очень плохое. Любая помощь будет оценена.
Спасибо.