我在VS2015中开发了一个简单的SSIS包。而不是将其部署到SQL Server进行调度,我现在将有一个桌面应用程序,可以手动关闭作业。
如果我转到本地计算机上的位置并双击Package.dtsx文件,它将打开一个执行包实用程序。如果我点击执行它会完全运行包,所有步骤都会成功。
当我创建一个桌面应用程序并从它们执行它时(这是关于如何手动部署本地SSIS包的Microsoft代码):
string pkgLocation;
Package pkg;
Microsoft.SqlServer.Dts.Runtime.Application app;
DTSExecResult pkgResults;
pkgLocation = @"C:\SSIS\TestSSIS\Package.dtsx";
app = new Microsoft.SqlServer.Dts.Runtime.Application();
pkg = app.LoadPackage(pkgLocation, null);
pkgResults = pkg.Execute();
if (pkgResults.ToString() != "Success")
{
if (pkg.Errors.Count > 0)
{
string errors = "";
int errorID = 0;
foreach (DtsError error in pkg.Errors)
{
errors = errors + error.Description.ToString();
errorID++;
}
MessageBox.Show(errors + "Total Error Count:" + errorID.ToString() );
}
我收到一些错误消息: 对于流程中的每个步骤,我都会收到此错误:
要在SQL Server数据工具之外运行SSIS包,必须安装Integration Services或更高版本的[步骤名称]。
该特定错误没有任何意义。我已经注意到它是一个MS Bug,错误是错误的,但到目前为止我的情况都没有应用解决方案。我们如何解决这个问题?
答案 0 :(得分:1)
我发现了这个问题。在这里发布,这有助于其他人。事实证明,错误本身可以承担很多含义。在我的情况下
ASSEMBLY: Microsoft.SqlServer.Dts.Runtime
它有2个版本,12.0和13.0。我无意中没有添加正确的程序集版本,因此应用程序看起来我没有安装SSIS。
荣幸地提到@Ferdipux指出程序集可能会导致这种情况并研究MSErrorList。