将SSIS包保存到本地计算机

时间:2018-08-15 21:03:21

标签: c# sql-server ssis

现在,我可以使用C#程序将本地计算机上的SSIS包上传到SQL Server:

Microsoft.SqlServer.Dts.Runtime.Application app;
app = new Microsoft.SqlServer.Dts.Runtime.Application();


string pkg = @"C:\Temp\myPackage.dtsx";
Package loadedPkg = app.LoadPackage(pkg, null);

app.SaveToSqlServerAs(loadedPkg, null, "myNewPackage", "myServer", null, null);

这很好。现在我要做相反的事情,将SSIS包从SQL Server保存到我的本地计算机。我在这里使用Microsoft文档:https://docs.microsoft.com/en-us/dotnet/api/microsoft.sqlserver.dts.runtime.application?view=sqlserver-2017

似乎没有任何方法可以保存到计算机。我看到了“加载”方法,但是我无法使它们起作用。我认为他们只是准备要上传到服务器的软件包,就像我之前的示例一样。是否可以通过相同的“ Application”类实现?

编辑:对于以后阅读此书的任何人:@Hadi的答案中的“ pkgIn”路径已经内置了“ MSDB”,因此,如果您需要“ \ MSDB \ packages”或随便,只要使用“ \ packages”

1 个答案:

答案 0 :(得分:1)

您必须使用SaveToXml()函数来实现。

app.SaveToXml("C:\Temp\myNewPackage.dtsx", pkg, null);  

您可以参考此链接:


更新1

尝试使用类似的代码:

Package pkgIn = new Package();  
pkgIn = app.LoadFromSqlServer("\\myNewPackage", "yourserver", null, null, null);
app.SaveToXml("C:\Temp\myNewPackage.dtsx", pkgIn , null);

有关从SQL Server加载程序包的更多信息,请参考以下链接: