2010-08-09 11 views
1

Est-ce que quelqu'un a eu de la chance en créant un assemblage pour iTextSharp pour une utilisation avec des procédures stockées CLR? J'ai essayé tout l'après-midi et n'ai pas pu obtenir de résultats. SQL Management Studio dit que je dois d'abord enregistrer system.drawing (ne peut pas être la nouvelle version, doit être l'ancienne version pas moins), mais il me donne des problèmes lorsque je tente de l'exécuter créer pour sûr et dangereux.Ajout de la DLL iTextSharp pour utilisation avec les procédures stockées CLR

Je me demande donc si quelqu'un a eu de la chance avec iTextSharp pour travailler avec CLR SPROCS? La raison pour laquelle je veux faire est parce que je serais capable de transmettre des paramètres et générer des rapports beaucoup plus facile (CLR SPROC contient la substance standard statique alors que les paramètres peuvent contrôler des choses dynamiques)

Merci pour toute aide

Répondre

1

Enregistrez-vous ces assemblées sur le serveur:

CREATE ASSEMBLY [System.Drawing] FROM 
    'C:\Windows\Microsoft.NET\Framework\v2.0.50727\System.Drawing.dll' 
    WITH PERMISSION_SET = UNSAFE 

CREATE ASSEMBLY [System.Windows.Forms] FROM 
    'C:\Windows\Microsoft.NET\Framework\v2.0.50727\System.Windows.Forms.dll' 
    WITH PERMISSION_SET = UNSAFE 

CREATE ASSEMBLY [itextsharp] FROM 
    'C:\MY_CLR\itextsharp.dll' 
    WITH PERMISSION_SET = UNSAFE 

Ensuite, vous pouvez trouver refence pour iTextSharp dans le dialogue Ajouter une référence (onglet SQL Server)

Il fonctionne (VS2010, C#, SQLServer2005, itextsharp5.0)

1

Vous ne pas besoin System.Windows.Forms.dll que l'autre réponse suggère.
Ajoutez simplement ces 2 références à votre projet Visual Studio:

  1. System.Drawing.dll
  2. itextsharp.dll

Assurez-vous que ces deux DLL sont référencées par votre projet.
Puis, dans les propriétés de ces 2 Referenced DLL, définissez le « aware » Propriété à « vrai »
Quelque chose au sujet de cette propriété peine documentée sera déployer automatiquement votre Assemblée Référencés.
enter image description here

Reconstruire votre projet (assurez-vous de le faire ou vous pouvez voir une erreur) et essayer déploiement.
Il devrait automatiquement ajouter ces 2 références en tant qu'assemblages à votre base de données SQL.
Une fois ajouté, il est au moins assez intelligent pour ne pas tomber et les rajouter lors de redéploiements ultérieurs. REMARQUE: Après cela, il échoue toutes les deux fois que j'essaie de déployer mon projet.
Je ne sais pas pourquoi, mais je suis prêt à le supporter (j'utilise VS2013).


AVERTISSEMENT: je suis tombé sur cette erreur horrible

ALTER ASSEMBLY failed because the referenced assemblies would change. The referenced assembly list must remain the same.

Dans ce cas, vous devez déposer toute l'assemblée, parce que quelque chose au sujet du déploiement fait partie de l'ensemble de rester intact et ne pas mettre à jour les références externes et donne à la place cette erreur cryptique/inutile.

Ce que je fini par faire tomber toutes les dépendances a été et l'Assemblée dans mon Predeployscript.sql. De cette façon, j'évite le problème sur tout serveur sur lequel je déploie mon assemblage SQL (ou lorsque j'ajoute de nouvelles références).