Pregunta

Estoy tratando de usar la biblioteca de cifrado Chilkat en SQL Server 2008 a través de un ensamblaje CLR. Debido a cómo se elabora la biblioteca Chilkat (vea su mensaje a continuación), no puedo hacer esto directamente y necesito crear una clase de envoltorio que haga referencia a la biblioteca Chilkat y, sin embargo, esté completamente administrada como requiere SQL Server.

A continuación se muestra la respuesta de Chilkat cuando pregunté sobre cómo interactuar su biblioteca directamente por SQL Server (la versión corta es que no puede).

El ensamblaje Chilkat .NET es un ensamblaje de modo mixto, lo que significa que la implementación está escrita en C ++ y se compila en código nativo. La capa externa es una interfaz administrada. En el pasado, aprendí de otros clientes que en esta situación puede resolver el problema creando una biblioteca de clase de envoltura simple en Visual Studio (totalmente administrado) donde el ensamblaje de envoltorio hace referencia al ensamblaje de Chilkat, y los objetos de servidor SQL hacen referencia a su ensamblaje de envoltorio. Dado que probablemente solo esté llamando a un puñado de métodos de Chilkat (y propiedades), no debería ser mucho trabajo escribir los pocos métodos para reenviar la llamada al objeto Chilkat envuelto y devolver el resultado.

Está bien. Así que aquí está el problema. Cuando creo un proyecto CLR en Visual Studio 2008, no puedo agregar ninguna referencia a la biblioteca Chilkat (o cualquier otra para el caso). Hay no Examine la pestaña / botón / enlace o lo que sea para agregar una biblioteca de referencia adicional. Simplemente no está allí.

¡Ayuda antes de que me vea obligado a recurrir a Clipper o DBase3+!

Detalles: SQL Server 2008, Visual Studio 2008, Chilkat Evaluation Library abril de 2011.

¿Fue útil?

Solución

SQL Server es un poco exigente sobre qué ensamblajes CLR permitirá cargarse y Visual Studio le impide agregar cualquier referencia de ensamblaje antigua Willy Nilly.

Esto se debe a que necesita cargar ensamblajes de terceros a través del Nueva asamblea Herramienta que se encuentra en el nodo "Programabilidad" para su base de datos (haga clic derecho en los ensamblados) o utilizando CREATE ASSEMBLY.

Esto le da a SQL Server la oportunidad de inspeccionar el ensamblaje y validar para asegurarse de que sea de un tipo compatible para su uso con la integración SQL CLR. Hace esto para asegurarse de que el ensamblaje no es probable que mate SQL Server o cause problemas de estabilidad.

Esta sección de SQL Books Online cubre restricciones SQL CLR:

Restricciones del modelo de programación de integración CLR

La asamblea de Chilikat fallará en el Peverificar Prueba (descrita en la sección Externa_Access) porque los ensambles de modo mixto que contiene funciones no administradas no son código seguro de tipo verificable.

Si intenta instalar un ensamblaje de modo mixto no verificable, obtendrá un error como:

Cree el ensamblaje para el ensamblaje 'ChilkatDotnet2' falló porque el ensamblaje 'ChilkatDotnet2' está malformado o no es un ensamblaje de .NET puro. Encabezado PE no verificable/trozo nativo. (Microsoft SQL Server, Error: 6544)

Hay un Hilo de discusión aquí Eso cubre este tema y algunos trabajos sugeridos.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top