我需要在代码中以编程方式运行 Execute Package Task
。
我收到以下错误:
Error in Microsoft.SqlServer.Dts.Runtime.TaskHost/ :
There is no project to reference.
Error in Microsoft.SqlServer.Dts.Runtime.TaskHost:
There were errors during task validation.
Failure
如果我将Execute Package Task
ReferenceType
设置为,则只会出现此错误
Project Reference
。
但是,如果我将ReferenceType
设置为External Reference
,则不会发生错误并且包已成功运行。
我需要知道为什么会出现这种错误,为什么我不能使用 Project Reference
?
以下屏幕截图显示导致错误的设置:
以下设置不会导致错误:
最后,我的代码以编程方式运行任务:
class Program
{
class MyEventListener : DefaultEvents
{
public override bool OnError(DtsObject source, int errorCode, string subComponent,
string description, string helpFile, int helpContext, string idofInterfaceWithError)
{
Console.WriteLine("Error in {0}/{1} : {2}", source, subComponent, description);
return false;
}
}
static void Main(string[] args)
{
string pkgLocation;
Package pkg;
Application app;
DTSExecResult pkgResults;
MyEventListener eventListener = new MyEventListener();
pkgLocation =
@"C:\Users\Administrator\Desktop\ExampleConnectionMgr\Master.dtsx";
app = new Application();
pkg = app.LoadPackage(pkgLocation, eventListener);
pkgResults = pkg.Execute(null, null, eventListener, null, null);
Console.WriteLine(pkgResults.ToString());
Console.ReadKey();
}
}
答案 0 :(得分:1)
这是由于您正在SSIS项目的上下文之外执行包。两个.dtsx包彼此不了解。当您选择“Project Reference”作为ReferenceType时,系统会查找同一项目的其他包成员,这就是DataExtractionB.dtsx是可用选项的原因。