Hola
Estoy empezando a crear ensambladores
Mi función es
Imports Microsoft.SqlServer.Server
Imports System.Data.SqlClient
Imports System.IO
Public Class clr
Inherits System.Web.UI.Page
<SqlFunction()> Public Function texto_descarga(ByVal numero As Byte, ByVal
c0 As Integer, ByVal nversion As Byte) As String
Dim strfichero As String, strruta As String, strfichero_principal As String
= Nothing
strruta = "Aplicaciones/"
strfichero = "aplicacion"
strfichero &= c0 & IIf(nversion > 0, "(" & nversion & ")", "")
strruta = Server.MapPath(strruta)
For Each foundFile As String In My.Computer.FileSystem.GetFiles(strruta,
FileIO.SearchOption.SearchTopLevelOnly, strfichero & ".*")
strfichero_principal = foundFile.Substring(InStrRev(foundFile, "\"))
Exit For
Next
If strfichero_principal Is Nothing Then strfichero_principal = "Falta " &
strfichero
Return strfichero_principal
End Function
End Class
Compilo y obtengo la dll con vbc
Luego me creo el ensamblador así
CREATE ASSEMBLY clr
'FROM 'C:\clr.dll' WITH PERMISSION_SET = safe
Pero me sale un error
Error de ejecución SQL.
Instrucción SQL ejecutada: CREATE ASSEMBLY clr FROM 'C:\clr.dll' WITH
PERMISSION_SET = safe
Origen del error: .Net SqlClient Data Provider
Mensaje de error: Error de CREATE ASSEMBLY para el ensamblado 'clr' debido a
un error de comprobación del ensamblado 'System.Drawing'. Compruebe si los
ensamblados a los que se hace referencia están actualizados y son de
confianza (para external_access o unsafe) para ejecutarse en la base de
datos. Después de este mensaje aparecen los mensajes de error de comprobación
de CLR, si los hay
[ :
System.Drawing.BufferedGraphicsContext::bFillColorTable][mdToken=0x6000243][desplazamiento
0x00000053][se encontró address of Byte] Se esperaba un tipo numérico en la
pila.
[ :
System.Drawing.BufferedGraphicsContext::bFillColorTable][mdToken=0x6000243][desplazamiento
0x00000043][se encontró Native Int][se esperaba address of Byte] Tipo no
esperado en la pila.
[ :
System.Drawing.BufferedGraphicsContext::bFillColorTable][mdToken=0x6000243][desplazamiento
0x00000027][se encontró Native Int][se esperaba address of Byte] Tipo no
esperado en la pila.
[ : System.Drawing.Icon::GetShort][mdToken=0x600045f][desplazamiento
0x00000002] Los punte...
No sé qué puede fallar. ¿Tengo que actualizar las dll a las que llaman los 3
imports? ¿Dónde obtengo las actualizaciones?
Por lo que parece, el system.drawing es llamado por System.Web.UI.Page
Pero si no pongo el inherits, no me reconoce el server.mappath, y ese es mi
problema, el usar el server.mappath. Requiere el System.Web.UI.Page
¿Me podeis guiar, por favor?
Muchas gracias de antemano
Leer las respuestas