2011-03-30 28 views
5

Tengo dos proyectos: una .Net 4.0 Aplicación de consola y un sitio web Asp.Net 4.0 (están en la misma solución). Ahora me gustaría incluir la aplicación de la consola (su .exe) en la aplicación web, porque necesito ejecutarlo en el servidor cuando el usuario hace clic en un botón determinado.¿Cómo incluir otro proyecto Console Console exe en un sitio web Asp.Net?

Ahora me gustaría incluirlo de forma que la aplicación de la consola se actualice cada vez que recompile la solución, para que esté actualizada.

Entonces ... ¿cómo puedo incluir mi .exe en mi aplicación web?

Ps. Referenciación no funciona: enter image description here

+0

He actualizado mi respuesta con un evento de publicación posterior que funciona como un tratamiento con los archivos .exe y sus archivos dependientes. –

Respuesta

6

has necesitado sólo añadir como un "Proyecto de referencia" para el proyecto sitio web? Haga clic derecho en el proyecto del sitio web, seleccione "Agregar referencia ..." y cambie a la pestaña "Proyectos".

Una prueba rápida aquí mostró que al hacer eso, la salida del proyecto de la aplicación de consola (el .exe) se copió en la carpeta/bin del sitio web cuando construí la solución.

Debería poder utilizar sus mecanismos de implementación estándar para asegurarse de que esto se copie en el servidor al mismo tiempo que las otras bibliotecas.


Disculpas, tienes razón, esto no funciona con un proyecto de página web, sólo con un Web applciation.

En este caso, tendrá que usar un evento "Post Build" en su aplicación de consola para copiarlo en la carpeta del sitio web.

Haga clic derecho en el proyecto de la aplicación de la consola en el Explorador de soluciones y seleccione "Propiedades" o cuando tenga abierto un archivo del proyecto utilice el menú "Proyecto".

A continuación, en la pestaña "Eventos de generación", actualice la "línea de comandos del evento posterior a la generación" a algo como:

xcopy "$(TargetDir)$(TargetFileName)" "c:\users\[UserName]\Documents\Visual Studio 2010\Websites\[ProjectName]\bin\" /D /S /I /Y 

Si desea incluir los archivos de configuración AP y así entonces algo así como el lo siguiente sería mejor:

xcopy "$(TargetDir)$(TargetName).*" "c:\users\[UserName]\Documents\Visual Studio 2010\Websites\[ProjectName]\bin\" /D /S /I /Y 
+1

No, eso no funciona porque dice que 'Un proyecto debe crear una extensión' dll 'para poder hacer referencia a él'. –

+0

@Kees - Ah, lo siento, sí, las alegrías de un sitio web en lugar de una "aplicación web". –

+0

Increíble ... funciona a la perfección !! –

0

La opción exe está disponible si usted, use la pestaña de exploración en su lugar.

+0

Probablemente desee cambiar los directorios de salida de las versiones de depuración y liberación para usar un directorio común en ese caso, lo que haría es más difícil saber si tenía una compilación de depuración o versión, de lo contrario estaría bloqueado para usar primero el que había navegado - no se daría cuenta de que había hecho una compilación de lanzamiento, por ejemplo. –

1

Output Type

En el proyecto que se intenta hacer referencia, asegúrese de cambiar el tipo de salida a la biblioteca de clase. Esto debería arreglarlo.