Utilizar VB.NET y C# al mismo tiempo en la carpeta APP_CODE de ASP.NET

Justamente me acaban de preguntar como utilizar estos lenguajes de este modo. Este articulo lo escribí en Septiembre de 2006, y lo había colgado de otro en MisTrucos.NET, en mi Space.
Aquí en Geeks.ms ya lo comento José M. Alarcón, en base a cualquier lenguaje:

Quise postearlo aquí para que quede en el historial 😉

Aquí va…

Bueno he de aquí que por las cosas de la vida y componentes que reutilice y falta de tiempo necesite utilizar clases en VB.NET y C# dentro de la carpeta APP_CODE en un proyecto web en VS2005..

Coloque mis clases Clase1.vb y Clase2.cs en la carpeta y genero el siguiente error:
Exception Details: System.Web.HttpException: The files ‘/WebSite1/App_Code/Clase2.cs’ and ‘/WebSite1/App_Code/Clase1.vb’ use a different language, which is not allowed since they need to be compiled together.

Pero no creí que tuviera esta limitación así que me dedique a verificar como seria el proceso de indicarle el tipo de lenguaje que se utiliza en la famosa carpeta… por defecto el directorio APP_CODE puede contener clases del mismo lenguaje, pero se puede agregar subdirectorios e indicar a ASP.NET que los compile separadamente.

Cual es el proceso?….

  1. Primeramente insertar en la seccion de <compilation> del webconfig estas lineas que agregan un coleccion de subdirectorios que asp.net debe compilar en forma separada, o mejor dicho de forma agrupada por estos directorios…
    <codeSubDirectories>
            <add directoryName=»App_Code_VB»/>
            <add directoryName=»App_Code_CS»/>
    </codeSubDirectories>
  2. Luego tendías que crear estos directorios
    /App_Code/App_Code_VB
    /App_Code/App_Code_CS

  3. Y llegando al final, distribuir nuestras clases de VB.NET dentro de la carpeta correspondiente App_Code_VB, y las de C# en la carpeta App_Code_CS

 

Algunos datos interesantes (desde los enlaces a MSDN):

  • El orden de generación se deduce del orden descendente de la colección codeSubDirectories.
  • El directorio App_Code se genera en último lugar.
  • Los subdirectorios se muestran en el orden en el que se debe compilar el código para cumplir sus dependencias, pero…
  • No existen dependencias de orden de generación, lo que significa que este orden no es significativo.
  • No hay ningún elemento codeSubDirectories predeterminado configurado para ASP.NET.
  • Puede haber cualquier número de subdirectorios

 

Enlaces:

5 comentarios sobre “Utilizar VB.NET y C# al mismo tiempo en la carpeta APP_CODE de ASP.NET”

  1. No se Si este post este vigente, muy util , lo implemente para tener acceso a una clase en C#, sin embargo cuando la llamo desde el código Vb (Asp.net, Visual Studio 2005) no encuentro la clase para poder usarla, quizas haya algun otro detalle que se me escapa.
    Lo Agradecería

    Gracias

    Alberto

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *