在我的環境中,大多數SSIS包都是獨立的,只有它自己需要部署到生產環境的包。SSIS部署最佳實踐 - 包和其他工件
但是現在我們有一套相當複雜的軟件包,需要創建自己的表格,並且如果可能的話,我希望能夠在安裝時檢查權限。
我們考慮過使用分步向導來創建MSI來執行生產安裝。
我的問題:是否有像這樣的SSIS部署方案的最佳做法?我們是否可能劫持部署嚮導SSIS默認生成添加我們自己的步驟?有沒有關於此的任何Microsoft文檔/指導?
在我的環境中,大多數SSIS包都是獨立的,只有它自己需要部署到生產環境的包。SSIS部署最佳實踐 - 包和其他工件
但是現在我們有一套相當複雜的軟件包,需要創建自己的表格,並且如果可能的話,我希望能夠在安裝時檢查權限。
我們考慮過使用分步向導來創建MSI來執行生產安裝。
我的問題:是否有像這樣的SSIS部署方案的最佳做法?我們是否可能劫持部署嚮導SSIS默認生成添加我們自己的步驟?有沒有關於此的任何Microsoft文檔/指導?
從大型組織中部署多個項目並使用大量繁文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腳本的批量部署是一個更爲通用的問題。
如果您正在使用SQL Server 2012,你可能想看看在項目部署模型:
http://msdn.microsoft.com/en-us/library/hh213290
這消除了一些與安裝包處理......至於在掛鉤的麻煩對部署的其他操作我發現PowerShell或MSBuild運行良好。
必須有一種方法可以通過dtutil傳遞用戶的上下文,我猜測但無法找到。 – PositiveGuy 2012-08-26 04:50:44