c# - vsdesigner - ou une de ses dépendances le fichier spécifié est introuvable



Le composant de script SSIS ne peut pas charger l'assembly tant qu'il n'est pas ouvert manuellement (1)

Je suppose que votre problème peut être lié à la version Express.

Voir à la page correspondante les différences entre les versions Express et BimlStudio (Tableau comparatif des fonctionnalités sous le bouton "Comparer avec BimlStudio"):

https://www.varigence.com/BimlExpress

Je crée un projet SSIS via Biml (en utilisant la version actuelle de BimlExpress sur la page Varigence BimlExpress ) qui utilise un composant de script dans une tâche de flux de données. Le projet est créé sans problème cependant des erreurs quand il arrive au composant de script:

Impossible de charger le fichier ou l'assembly 'Microsoft.SqlServer.DTSPipelineWrap, Version = 14.100.0.0, Culture = neutre, PublicKeyToken = 89845dcd8080cc91' ou l'une de ses dépendances. Le système ne peut pas trouver le fichier spécifié.

à ScriptMain.PreExecute () à Microsoft.SqlServer.Dts.Pipeline.ScriptComponentHost.PreExecute ()

Je peux voir cette DLL dans le GAC et quand j'essaie d'ajouter la référence manuellement, SSIS déclare que je ne peux pas l'ajouter car il est déjà inclus dans le projet.

Cependant, si j'ouvre le composant de script et le compile manuellement - mais ne change rien d'autre - la tâche de flux de données se déroulera sans problème.

Pour clarifier, je sais que je n'ai rien changé d'autre car je recréais ce projet à partir du Biml chaque fois que je veux tester une nouvelle approche, qui fournit une base de référence cohérente.

Est-ce que quelqu'un sait pourquoi un composant de script qui inclut une référence à une DLL GAC, ne fonctionnera que lorsqu'il est Built manuellement, mais pas avant?

J'ai utilisé ce Biml exact avant sans problème, mais dans un environnement différent. Travaillé à l'aide de Visual Studio 2012 sur une instance SQL Server 2016 n'est pas encore ici dans Visual Studio 2015 (ciblage 2012) par rapport à une instance SQL Server 2016.

Pour plus de contexte, j'ai également testé cette sortie du projet SSIS ciblé sur SQL Server 2012, 2014 et 2016 avec exactement le même message d'erreur.

Mettre à jour

Cela semble être définitivement un problème de version dll dans le projet en tant que sortie de BimlExpress, en ce que si je crée manuellement le dossier v4.0_14.100.0.0__89845dcd8080cc91 avec la version 13 dll à l'intérieur de C:\Windows\Microsoft.NET\assembly\GAC_MSIL\Microsoft.SqlServer.DTSPipelineWrap le composant de script maintenant des erreurs avec ce qui suit:

System.InvalidCastException: Impossible de transformer l'objet COM de type 'System .__ ComObject' en type d'interface 'Microsoft.SqlServer.Dts.Pipeline.Wrapper.IDTSComponentMetaData100'. Cette opération a échoué car l'appel QueryInterface sur le composant COM pour l'interface avec IID '{ ID supprimé juste au cas où }' a échoué en raison de l'erreur suivante: Aucune interface prise en charge (Exception de HRESULT: 0x80004002 (E_NOINTERFACE)).

à Microsoft.SqlServer.Dts.Pipeline.ScriptComponentHost.HandleUserException (Exception e)

à Microsoft.SqlServer.Dts.Pipeline.ScriptComponentHost.PreExecute ()

à Microsoft.SqlServer.Dts.Pipeline.ManagedComponentHost.HostPreExecute (wrapper IDTSManagedComponentWrapper100)