none
Error al crear una Dll C# (Que consume otra dll dentro) RRS feed

  • Pregunta

  • Tengo el siguiente problema:

    Estoy intentando crear una DLL en C# para utilizar en una aplicación creada en VB6. Puedo crear una Dll y utilizarla sin problema desde VB6. Mi problema viene cuando dentro de la Dll que estoy creando intento utilizar otra Dll ya creada con anterioridad.
    Pasando en limpio: Creo mi Dll en C# (con sus métodos) y dentro de esa Dll consumo otra Dll creada anteriormente (con otros metodos que necesito). Dentro de c# no tengo ningún error, construyo mi solución (Buil Solution) y no me da ninguna clase de error. Cuando intento compilar la dll para utilizarla en VB6 (por línea de comando en Command Prompt) me da el siguiente error:
     "error CS0246: No se puede encontrar el tipo o el nombre de espacio de nombres 'MiLibreria' <¿Falta una directiva using o una referencia de ensamblado?> "
    Pero la dll que utilizo esta agregada a las referencia y esta la directiva using.

    Si yo no uso esa dll, mi DLL para vb6 la puedo compilar sin problemas y utilizarla.


    Mi pregunta es: ¿tengo que agregar la Dll que necesito de alguna manera en especial en mi proyecto en C#?  ¿Alguien me puede orientar por donde puede estar el problema? 

    Espero que se entienda mi problema!

     

    lunes, 14 de diciembre de 2009 4:16

Respuestas

Todas las respuestas

  • Hola Joaquin,

    una pregunta: ¿has añadido, en tu proyecto de dll en c#, la referencia a la dll que te indica que te falta? Para añadir una referencia, debes ir al Explorador de Soluciones (en la parte izquierda de tu pantalla), seleccionas tu proyecto, seleccionas la carpeta llamada References y miras si dentro hay la dll que necesitas. Si no está, añadela con el botón derecho (Añadir referencia). Si ya la tienes añadida, seleccionala y comprueba que tienes la marcadas, en sus propiedades (F4), la opción Copia local (Copy local).

    Tambien puedes comprobar que, en las propiedades de tu proyecto (Proyecto - Propiedades - Pestaña Build) seleccionar el item "Registrar para interoperabilidad COM" (Register form COM Interop).



     
    En caso de que la respuesta te sirva, porfavor, márcala como válida

    Muchas gracias y suerte!


    Javier Jiménez Roda




    Blog: http://jimenezroda.wordpress.com

    Sígueme en Twitter Follow jimenezroda on Twitter
    lunes, 14 de diciembre de 2009 9:45
  • Hola Javier:

    Si tengo la Dll agregada a las referencias de mi proyecto. Y ya probe con seleccionar el item "Registrar para interoperabilidad COM". pero nada :(


    Gracias igual por tu tienpo.-
    lunes, 14 de diciembre de 2009 11:50
  • Hola de nuevo,

    y has probado a copiar la dll que te falta en el proyecto VB en el que la estás utilizando? Es decir, añadir al proyecto VB (el que hace uso de la dll en C#) la dll que te está marcando como error?


    En caso de que la respuesta te sirva, porfavor, márcala como válida

    Muchas gracias y suerte!


    Javier Jiménez Roda



    Blog: http://jimenezroda.wordpress.com
    Sígueme en Twitter Follow jimenezroda on Twitter
    lunes, 14 de diciembre de 2009 12:02
  • para compilar por linea de comandos enlazando otras librerias asegurate de enlazarlas tambien, debes hacer algo como esto:

    csc fuente1.cs fuente2.cs /r:MiArchivodll.dll


    Colabora con la comunidad, si éste mensaje te ha sido de utilidad, márcalo como respuesta correcta.
    Juan Carlos Ruiz Pacheco
    Ingeniero de Sistemas
    Microsoft MVP C#
    MCP,MCTS,DCE+Platino,OCA,OCP
    Visita Mi Blog C# XNA Sistemas Operativos
    lunes, 14 de diciembre de 2009 13:38
    Moderador
  • Muchisimas gracias Juan Carlos por tu tiempo... No sabes los dolores de cabeza que me dio esto!

    Y desde ya muchas gracias a Javier tambien.-
    lunes, 14 de diciembre de 2009 18:02