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;
   }   

実行時(パッケージを作成しようとすると)、次のエラーが発生します。0xC0048021 -1073446879 DTS_E_ERRORCOMPONENTコンポーネントが見つからないか、登録されていないか、アップグレードできないか、必要なインターフェイスがありません。このコンポーネントの連絡先情報は「%1」です。

ありがとう、

4

1 に答える 1

2

私は同じ問題「エラーコード:0xC0048021」に直面し、それを解決しました。この問題は、データフロータスクで追加されたスクリプトコンポーネントが原因で発生しました。

このバージョンのSSDTをここからインストールしましたhttps://msdn.microsoft.com/en-us/mt429383

次に、SSDTソリューションエクスプローラーでプロジェクトを右クリックし、[プロパティ]->[構成プロパティ]->[TargetServerVersion = SQLSERVER2014]に移動します。

次に、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 に答える