Tôi cần có khả năng xuất bản một dự án SSDT theo chương trình. Tôi đang xem xét việc sử dụng Microsoft.Build để làm như vậy nhưng không thể tìm thấy bất kỳ tài liệu nào. Nó có vẻ khá đơn giản để tạo .dacpac, nhưng làm thế nào tôi có thể xuất bản tới một cơ sở dữ liệu hiện có hoặc ít nhất là vào một tệp .sql. Ý tưởng là để có nó làm những gì nó làm khi tôi nhấp chuột phải vào dự án và chọn xuất bản. Nó nên so sánh với một cơ sở dữ liệu được chọn và tạo ra một kịch bản nâng cấp.Sử dụng Microsoft.Build.Evaluation để xuất bản dự án cơ sở dữ liệu (.sqlproj)
Đây là những gì tôi có cho đến nay để tạo ra các .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());
}
}
Về cơ bản tôi đang cố gắng để làm những gì MSBuild Example này chương trình nhưng trong mã.
Xin lỗi vì đây là tất cả những gì tôi có. Các doecumentation trên các lớp Xây dựng là rất nghèo. Bất kỳ trợ giúp sẽ được đánh giá cao.
Cảm ơn.
Tôi cần tham chiếu cả cụm từ 'Microsoft.Build' và' Microsoft.Build.Framework' để mã này hoạt động. – Sam
Hãy chắc chắn kiểm tra giá trị trả về của 'Build' để xem nó có thành công hay không. – Sam
Để theo dõi các sự kiện xây dựng, sử dụng 'ConfigurableForwardingLogger' và đặt' BuildEventRedirector' thành một 'IEventRedirector' tùy chỉnh. Bạn có thể kiểm tra lỗi bằng cách kiểm tra nếu 'buildEvent' là' BuildErrorEventArgs'. – Sam