2011-03-30 6 views
5

J'ai deux projets: un .Net 4.0 Console Application et un Asp.Net 4.0 Site Web (ils sont dans la même solution). Maintenant je voudrais inclure l'application de console (son .exe) dans l'application Web, parce que je dois l'exécuter sur le serveur quand l'utilisateur clique sur un certain bouton.Comment inclure un autre projet Console Application exe dans un site Web Asp.Net?

Maintenant, je voudrais l'inclure de manière à ce que l'application console soit mise à jour chaque fois que je recompile la solution, afin qu'elle reste à jour.

Alors ... comment puis-je inclure mon .exe dans mon application web?

Ps. Referencing ne fonctionne pas: enter image description here

+0

J'ai mis à jour ma réponse avec un événement Post Build qui fonctionne avec les fichiers .exe et ses fichiers dépendants. –

Répondre

6

Avez-vous essayé simplement l'ajouter comme un « projet de référence » au site projet? Faites un clic droit sur le projet du site Web, sélectionnez "Ajouter une référence ..." et passez à l'onglet "Projets".

Un test rapide a montré que, ce faisant, la sortie du projet d'application console (le fichier .exe) a été copiée dans le dossier/bin du site Web lorsque j'ai construit la solution.

Vous devriez alors être en mesure d'utiliser vos mécanismes de déploiement standard pour vous assurer qu'ils sont copiés sur le serveur en même temps que les autres bibliothèques.


Toutes mes excuses, vous avez raison, cela ne fonctionne pas avec un projet WebSite, seulement avec un Web applciation.

Dans ce cas, vous devrez utiliser un événement "Post Build" sur votre application de console pour le copier dans le dossier du site Web.

Faites un clic droit sur le projet d'application console dans l'Explorateur de solutions et sélectionnez "Propriétés" ou, lorsque vous avez un fichier du projet ouvert, utilisez le menu "Projet".

ensuite sur « Construire des événements » onglet, mettez à jour la « commande de l'événement après génération » à quelque chose comme:

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

Si vous souhaitez inclure l'APB et les fichiers de configuration et puis quelque chose comme suivant serait mieux:

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

Non, cela ne fonctionne pas car il indique que 'Un projet doit être construit en extension' dll 'afin d'être référencé.' –

+0

@Kees - Ah, désolé, oui, les joies d'un site Web plutôt que d'une "application Web". –

+0

Incroyable ... fonctionne parfaitement !! –

0

L'option exe est disponible si vous, utilisez l'onglet de navigation à la place.

+0

Vous voudrez probablement changer les répertoires de sortie des versions Debug et Release pour utiliser un répertoire commun dans ce cas, ce qui ferait il est plus difficile de savoir si vous avez une version de débogage ou de version, sinon vous seriez bloqué en utilisant celui que vous aviez parcouru en premier - il ne remarquerait pas que vous avez fait une version de construction par exemple. –

1

Output Type

Sur le projet que vous essayez de référence, assurez-vous de changer le type de sortie à la bibliothèque de classe. Cela devrait le réparer.

Questions connexes