试图自动化目前是两个步骤的过程。首先,我们有一个 (VS 2010) C# 应用程序,它从供应商处下载价格目录,处理数据并创建一个 .txt 文件。其次,我们有一个 SSIS 项目 (VS 2008),它清空 (SQL Server 2005) 数据库中的表并从 .txt 文件中重新填充它。
我试图通过从应用程序调用 SSIS 项目来组合这些步骤。如果有更好的方法将按摩后的数据输入数据库,我愿意接受建议。
我使用的方法在这里:
private static void UpdateVendorTable()
{
string pkgLocation;
Package pkg;
Application app;
DTSExecResult pkgResults;
pkgLocation = appConfig.Default.DataSSIS; // C:\Projects\Vendor\vendor.dtsx
app = new Application();
pkg = app.LoadPackage(pkgLocation, null);
pkgResults = pkg.Execute();
}
但是,当“pkgLocation = appConfig.Default.DataSSIS;”时,我得到如下所示的错误 到达线。
由于错误 0xC0011008“从 XML 加载时出错。无法为此问题指定更多详细的错误信息,因为没有传递任何事件对象来存储详细的错误信息。”导致包无法加载。当 CPackage::LoadFromXML 失败时会发生这种情况。此异常有一个 InnerException:System.Runtime.InteropServices.COMException (0xC0011008):由于错误 0xC0011008“从 XML 加载时出错。由于没有传递事件对象,因此无法为此问题指定更多详细的错误信息。可以存储详细的错误信息。”。当 CPackage::LoadFromXML 失败时会发生这种情况。
在 Microsoft.SqlServer.Dts.Runtime.Wrapper.ApplicationClass.LoadPackage(字符串文件名,布尔 loadNeutral,IDTSEvents90 pEvents)在 Microsoft.SqlServer.Dts.Runtime.Application.LoadPackage(字符串文件名,IDTSEvents 事件,布尔 loadNeutral)