Método não encontrado SetDataTypeProperties no componente SSIS personalizado

Estou tentando criar um componente SSIS simples e personalizado que analisa uma única coluna de entrada e a valida, criando uma coluna de saída do tipo bool, dependendo do valor de cada linha.

Eu construí com sucesso um componente ainda mais simples que pega um valor e o transforma: isso não requer mexer nas colunas de saída. Nesse caso, preciso pegar uma string e gerar um booleano e o componente precisa saber que ele gera um booleano para que eu possa alimentar o valor em uma divisão condicional.

Estou lutando para adicionar as colunas de saída. Baseado emamostras de código da Microsoft, Eu fiz isso:

public override DTSValidationStatus Validate()
{
    IDTSOutput100 output = ComponentMetaData.OutputCollection[0];

    IDTSOutputColumn100 outputcol = output.OutputColumnCollection.New();
    outputcol.Name = "IsValid";
    outputcol.SetDataTypeProperties(DataType.DT_BOOL, 0, 0, 0, 0);

    return DTSValidationStatus.VS_ISVALID;
}

E então tento preenchê-lo durante a etapa ProcessInput:

public override void ProcessInput(int inputID, PipelineBuffer buffer)
{
    while (buffer.NextRow())
    {
        string str = buffer.GetString(0);
        buffer.SetBoolean(0, IsValid(str)); // validation code not relevant
    }
}

Quando tento usar esse componente no pacote, recebo este erro:

The component has detected potential metadata corruption during validation.
Error at Data Flow Task [Uppercase [24]]: System.MissingMethodException: Method not found: 'Void Microsoft.SqlServer.Dts.Pipeline.Wrapper.IDTSOutputColumn100.SetDataTypeProperties(Microsoft.SqlServer.Dts.Runtime.Wrapper.DataType, Int32, Int32, Int32, Int32)'.
   at EmailValidation.Uppercase.Validate()
   at Microsoft.SqlServer.Dts.Pipeline.ManagedComponentHost.HostValidate(IDTSManagedComponentWrapper100 wrapper)

A pesquisa nessa mensagem de erro não resultou em nada de valor.

Na amostra original - e em alguns outros tutoriais online - a adição de colunas de saída é feita percorrendo a coluna de entrada e adicionando uma saída adicional para cada uma. Eu tentei isso e recebo o mesmo erro.

Eu também tentei mover o código da coluna de saída deValidate paraOnInputPathAttached que ainda gera o mesmo erro.

O que estou fazendo errado?

questionAnswers(2)

yourAnswerToTheQuestion