HansBaumann.net
"No se cómo será la tercera guerra mundial, sólo se que la cuarta será con piedras y lanzas" (Albert Einstein)

Como agregar un ensamblado en la GAC por código

26/05/2010 19:00:00

Pues eso, que en un momento determinado, tuve que crear un publicador de ensamblados para subir dll's en la GAC, el problema es que necesitaba hacerlo con código y no utilizando un shell de toda la vida. Buscando me di cuenta que existe un espacio de nombres en la versión 2.0 del .net Framework que se llama:

System.EnterpriseServices

Y es que en este espacio de nombres tenéis una clase de nombre System.EnterpriseServices.Internal.Publish que permite hacer lo mismo que un gacinstall de línea de comandos. NOTA: Si no la tenéis referenciada en vuestro proyecto, buscarla e incluirla pero no olvidaros que existe para ensamblados a partir de la versión 2.0 de .net

Por poneros un ejemplo sencillo, he creado un pequeño programilla que lo hace para que lo veáis en acción aunque no tiene, como vais a ver, ningún misterio:


using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace SubirDLL
{
    class Program
    {
        static void Main(string[] args)
        {
            System.EnterpriseServices.Internal.Publish publicador = new System.EnterpriseServices.Internal.Publish();

            Console.WriteLine("Quitando dll...");
            publicador.GacRemove(@"c:\datos\TestDll.dll");

            Console.WriteLine("Agregando dll...");
            publicador.GacInstall(@"c:\datos\TestDll.dll");

            Console.WriteLine("Enter para continuar...");
            Console.ReadLine();
        }
    }
}

Si queréis el código fuente completo, tengo la versión hecha sobre Visual Studio 2010 aquí. ¡¡Y no olvidaros ejecutar el ensamblado con derechos de administrador!! Y si estáis en windows 7/Vista, ¡Ejecutar el Visual Studio ya con derechos de administrador también!

Comentarios

¿Cual es el resultado de sumar 3 y 4?

Autor :

Correo Electronico (opcional):

Texto:

Agregar comentario
Inicio | Perfil | Publicaciones | Contacto | Mapa del sitio
2009 | webmaster
Valid XHTML 1.0 Transitional    ¡CSS Válido!