0

我正在尝试在我的托管代码中实现自定义数据流组件。这是我的自定义数据流组件:

[DtsPipelineComponent(DisplayName = "RenameComponent", ComponentType = ComponentType.Transform)]
public class MapperComponent : PipelineComponent
{
    List<IDTSVirtualInputColumn100> dontMapList;

    public override void ProvideComponentProperties()
    {
        base.ProvideComponentProperties();

        base.RemoveAllInputsOutputsAndCustomProperties();
        IDTSInput100 input = ComponentMetaData.InputCollection.New();
        input.Name = "Input";

        IDTSOutput100 output = ComponentMetaData.OutputCollection.New();
        output.Name = "Output";
        output.SynchronousInputID = input.ID;

        // Make the output asynchronous
        output.SynchronousInputID = 0;
        FindOldColumns(input);
    }
}

我编译它,将它注册到 gac,并将它保存到 C:\Program Files\Microsoft SQL Server\100\DTS\PipelineComponents 目录。

然后我运行以下代码将组件添加到我的数据流任务中:

private static IDTSComponentMetaData100 CreateRenameTransformation(MainPipe dataFlow, Train train)
    {
        IDTSComponentMetaData100 renameTransformation = dataFlow.ComponentMetaDataCollection.New();

        // Set stock properties
        renameTransformation.ComponentClassID = "Dexter.CustomComponents.MapperComponent";
        renameTransformation.Name = "RenameTransformation";
        renameTransformation.Description = "Rename and remove incompatible columns";

        CManagedComponentWrapper instance = renameTransformation.Instantiate();
        instance.ProvideComponentProperties();

        return renameTransformation as IDTSComponentMetaData100;
   }   

在运行时(当我尝试创建 pacakge 时),我收到以下错误:0xC0048021 -1073446879 DTS_E_ERRORCOMPONENT 组件丢失、未注册、不可升级或缺少所需的接口。此组件的联系信息是“%1”。

谢谢,

4

1 回答 1

2

我遇到了同样的问题“错误代码:0xC0048021”并解决了它。由于在数据流任务中添加了脚本组件,因此出现此问题。

我从这里安装了这个版本的 SSDT https://msdn.microsoft.com/en-us/mt429383

然后,在 SSDT 解决方案资源管理器中右键单击项目,转到属性 --> 配置属性 --> TargetServerVersion = SQL SERVER 2014

然后,在 SSDT 解决方案资源管理器中右键单击项目,转到属性 --> 配置属性 --> 调试 --> Run64BitRuntime = False

参考此链接http://blogs.msdn.com/b/ssis/archive/2016/03/03/what-s-new-for-ssis-2016-rc0.aspx

于 2016-03-15T12:49:32.150 回答