SSIS 和 EzAPI:调用 EzDerivedColumn 的构造函数导致 HRESULT:0xC0048021

SSIS & EzAPI: Calling constructor of EzDerivedColumn results in HRESULT: 0xC0048021

我遇到了 SSIS 和 EzAPI 的问题。这是代码

EzPackage package = new EzPackage();
package.Name = "[Insert My Table Name]";
EzDataFlow parent = new EzDataFlow(package);
dataFlow.Name = package.Name;    

EzFlatFileCM destConn = new EzFlatFileCM(parent);
destConn.ConnectionString = connectionString;
destConn.Format = FlatFileFormat.Delimited;
destConn.ColumnDelimiter = "";
destConn.RowDelimiter = "\n";
destConn.ColumnNamesInFirstDataRow = false;
destConn.LocaleID = 127;

if (isUnicode)
    destConn.CodePage = 65001;

EzFlatFileDestination destination = new EzFlatFileDestination(parent);
destination.Connection = destConn;
destination.Overwrite = true;

/// ColumnSchema is a container for some column information
foreach (ColumnSchema col in columns)
{
    IDTSConnectionManagerFlatFileColumn100 newColumn = data.Columns.Add();
    newColumn.ColumnType = "Delimited";
    newColumn.DataType = col.Type;
    newColumn.ColumnDelimiter = IsLastColumnInArray(col ) ? "\n" : "";
    newColumn.ColumnWidth = (col.Type == DbColumnType.LongString) ? (int) Constants.LongStringLength : (int) Constants.StringLength;

    var columnName = newColumn as IDTSName100;
    if (columnName != null)
         columnName.Name = GetColumnAlias(col.Name, columns);
}

List<EzFlatFileDestination> destinations = new List<EzFlatFileDestination>();
destinations.Add(destin);

/// This line will blow up
EzDerivedColumn derivedColumn = new EzDerivedColumn(parent);

错误信息:

An unhandled exception of type 'System.Runtime.InteropServices.COMException' occurred in EzAPI.dll

Additional information: Exception from HRESULT: 0xC0048021

现在,这是我的设置: - 我安装了 Microsoft SQL Server 2012 Client SDK 并确保所有 v110 DLL 都安装在 Program Files 和 GAC 中(是的,他们都说 11.0.0.0) - 我通过下载 EzAPI 的最新源代码构建了 EzAPI.dll:https://sqlsrvintegrationsrv.codeplex.com/SourceControl/latest。我确保项目中的所有 DLL 引用都指向 11.0.0.0 和特定版本 = true - GAC 和程序文件中还有其他版本的Microsoft.SqlServer.****.dll 文件,例如v100 和v120。然而,这些其他版本的 DLL 没有在程序的其他任何地方使用,它们也没有包含在我程序的 bin 文件夹中。 - 构建 EzAPI.dll 和我的项目

时,.NET 版本为 4.5

总之,我被难住了。我在网上找到了有此错误的文章,但他们通常谈论 DLL 不匹配或某些 DLL 未安装,但我不明白这些情况如何适用于我。我是否以某种方式滥用了 EzDerivedColumn?好吧,这很难知道,因为我的错误信息非常模糊。

如果对此有任何帮助,那就太好了。谢谢!

我建议您使用下面link中描述的方法来获取有关运行时错误消息的更多详细信息:

Debugging a COMException during package generation

原来我机器上没有安装SSIS 2012