Respondida Referencias a ensamblados en otro directorio

  • lunes, 11 de junio de 2012 17:03
     
     

    Buen día a todos. Estoy reorganizando mis proyectos en C# 2008. Creé ensamblados de las "librerías" comunes para que se generen en un directorio común.

    Luego, cuando hago referencia a ellos desde los proyectos de aplicación (WinForm), si no seteo CopyLocal = true, a pesar de haber configurado el proyecto en "Reference paths" al directorio donde se encuentran las librerías, no las encuentra.

    ¿Alguna idea?

    Gracias!

    ACTUALIZADO:

    Mi aplicación corre en: F:\Sistemas\ControlGastos

    Los ensamblados están en: F:\Sistemas\Librerias

    • Editado ferrans lunes, 11 de junio de 2012 18:39
    •  

Todas las respuestas

  • lunes, 11 de junio de 2012 18:51
     
     Respondida Tiene código

    Solucionado:

    Algunas modificaciones en Program.cs (antes del MAIN):

       static class Program
       {
          static Program()
          {
             AppDomain.CurrentDomain.AssemblyResolve += ResolveAssembly;
          }
    
          static Assembly ResolveAssembly(object sender, ResolveEventArgs args)
          {
             string sLibreria = args.Name.Split(',')[0];
             sLibreria += ".dll";
    
             string sBuscarEn = @"F:\_Sistemas\Librerias\";
    
             Assembly oRet = Assembly.LoadFile(Path.Combine(sBuscarEn, sLibreria));
             return oRet;
          }
    
          /// <summary>
          /// The main entry point for the application.
          /// </summary>
          [STAThread]
          static void Main()

    • Marcado como respuesta ferrans lunes, 11 de junio de 2012 18:52
    •