J'essaie d'implémenter un composant de flux de données personnalisé dans mon code managé. Voici mon composant personnalisé de flux de données:Erreur de SSIS du composant de pipeline personnalisé: HREF 0xC0048021
[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);
}
}
je compile que, inscrivez-vous avec le gac, et enregistrez-le dans le répertoire C: \ Program Files \ Microsoft SQL Server \ 100 \ DTS \ répertoire PipelineComponents.
Je lance alors le code suivant pour ajouter le composant à ma tâche de flux de données:
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;
}
Au cours de l'exécution (lorsque je tente de créer le pacakge), je reçois l'erreur suivante: 0xC0048021 -1073446879 DTS_E_ERRORCOMPONENT Le composant est manquant, non enregistré, non évolutif ou manque d'interfaces requises. Les informations de contact pour ce composant sont "% 1".
Merci,
Aussi fyi, quand je lis tout le PipelineComponentInfos componentInfos = application.PipelineComponentInfos; Les noms de création de composants, Dexter.CustomComponents.MapperComponent sont enregistrés. – doug
Juste pour vérifier, je comprends ce que vous faites. Vous avez créé un composant de flux de données personnalisé, enregistré et installé. Vous tentez * d'utiliser * le composant en créant un package via le modèle d'objet SSIS et * c'est * lorsqu'il échoue? Que faire si vous utilisez BIDS pour effectuer les mêmes tâches? – billinkc
Comment se fait-il que vous n'ayez pas ajouté le composant à BIDS? Je pense que vous devrez ajouter le composant à BIDS afin de l'utiliser dans le paquet. – rvphx