2011-02-17 73 views
2

在我的環境中,大多數SSIS包都是獨立的,只有它自己需要部署到生產環境的包。SSIS部署最佳實踐 - 包和其他工件

但是現在我們有一套相當複雜的軟件包,需要創建自己的表格,並且如果可能的話,我希望能夠在安裝時檢查權限。

我們考慮過使用分步向導來創建MSI來執行生產安裝。

我的問題:是否有像這樣的SSIS部署方案的最佳做法?我們是否可能劫持部署嚮導SSIS默認生成添加我們自己的步驟?有沒有關於此的任何Microsoft文檔/指導?

回答

0

從大型組織中部署多個項目並使用大量繁文tape節,msi已被證明是最佳解決方案。在導入項目本身而言,而不是部署工具,它是通過從MSI中調用命令行執行導入選項:

[RunInstaller(true)] 
    public partial class CustomInstaller : System.Configuration.Install.Installer 
    { 

     public override void Commit(IDictionary savedState) 
     { 
       base.Commit(savedState); 
       string InstallPath = System.IO.Path.GetDirectoryName(this.Context.Parameters["assemblyPath"]) + @"\"; 
       string SqlServer = Context.Parameters["SqlServer"]; 
       SsisInstaller.ImportPackage(InstallPath + "MyProject.dtsx", "MyProject", SqlServer); 
     } 

    } 

public class SsisInstaller 
{ 


    public static void ImportPackage(string packagePath, string packageName, string sqlServer) 
    { 
     ProcessStartInfo ProcessStartInfo = new ProcessStartInfo(@"""c:\program files\Microsoft SQL Server\100\DTS\Binn\dtutil.exe"""); 
     ProcessStartInfo.Arguments = @" /File """ + packagePath + @""" /Copy SQL;" + packageName + " /Q /DestS " + sqlServer; 
     Process.Start(ProcessStartInfo); 
    } 

} 

正如你所看到的,用戶界面的步驟加入到安裝程序項目並通過上下文傳遞,以允許用戶指定SSIS的實例名稱。它也有助於將Sql Agent作業作爲一個.sql腳本部署在其他sql依賴項中,但是對sql腳本的批量部署是一個更爲通用的問題。

+0

必須有一種方法可以通過dtutil傳遞用戶的上下文,我猜測但無法找到。 – PositiveGuy 2012-08-26 04:50:44