est-il possible de publier un projet d'application Web à l'aide d'un projet de déploiement Web sans em> précompilation? p> Afin de Départiez les commandes Web et les pages dans un assemblage distinct, j'utilise un virtualpathPathProvider personnalisé pour charger ces ressources. J'utilise des projets de déploiement Web et Msbuild à la ligne CMD pour déployer ces projets. P> Le creux de la matière est que VirtualPathProviders ne sont pas pris en charge pour des applications précompilées. J'ai trouvé une solution de contournement pour des fichiers réguliers ici . Cependant, cela ne fonctionne pas pour les fichiers d'application tels que En conséquence, j'ai décidé d'essayer d'abandonner la précompilation et de prendre la performance de la demande initiale frapper depuis notre trafic de site n'est pas particulièrement élevé. Cependant, je ne peux pas comprendre comment faire cela à l'aide de projets de déploiement Web, déjà très cuit dans notre processus de construction. P>
[mettre à jour]
P> Je cherche à personnaliser le fichier Microsoft.WebDeployment.Targets afin de l'accomplir, mais je n'ai eu aucune chance jusqu'à présent. P>
[mettre à jour]
P> En creusant dans le fichier Microsoft.WebDeployment.Targets, j'ai constaté qu'il n'y avait pas de moyen simple de découpler des projets de déploiement Web de la précompilation de l'application Web. En fait, je ne suis pas certain qu'il y ait besoin de. Ce que je suis maintenant en utilisant à la place, c'est quelque chose de ressemblant à l'extrait suivant. Je viens de le mettre dans le fichier de projet avec une condition d'attrape à ne pas déployer pour les constructions de débogage. P> Il semble que tout cela soit tout ce qui est nécessaire pour déployer un projet sans précompilation. Faites-moi savoir si vous trouvez quelque chose de mieux. P> h2> Notes h3>
ASCX code> et
ASPX code>. Il jette une exception dans le sens de "Le fichier n'a pas été pré-compilé et ne peut pas être demandé". P>
3 Réponses :
Peut-être que je manque quelque chose (je n'ai aucune expérience avec VirtualPathProviders), mais si vous voulez simplement que vos fichiers ASPX & ASCX ne soient pas précompilés, cochez la case "Autoriser ce site précompilé d'être mis à jour" dans la compilation section des pages de propriété du projet de déploiement (pour la configuration que vous utilisez). P>
de MSDN : P>
Autoriser ce site précompilé d'être mis à jour fort> p> Spécifie que le contenu des pages .aspx n'est pas compilé dans une assemblée; Au lieu de cela, le balisage est laissé tel quel, vous permettant de changer HTML et fonctionnalité côté client après précompilation du site Web. La sélection de cette case à cocher est équivalente à l'ajout de l'option -U à la COMMANDE ASPNET_COMPILER.EXE. P> blockQuote>
Oui, cela laisse la mise à jour du code côté client, mais le site est toujours précompilé, ce qui signifie que je ne peux pas utiliser un fournisseur de chemin virtuel.
J'ai eu le succès de la mise à jour des fichiers ASPX sans recompilation en ouvrant simplement les fichiers ASPX individuels dans Visual Studio sans ouvrir l'ensemble du projet / solution. P>
J'espère que cela aide. P>
Pour faire fonctionner VirtualPathProvider avec un site Web précompilé (ou au plus partiellement précompilé), vous devez faire ce que Alconja dit en conjonction à ce http://sunali.com/2008/01/09/virtualpathProvider-in-precompiled-web-sites/
à la place commune" appinitialize ": p> Utilisez ceci: p> selon référence, filtre d'action original Sites Web précompilisés. Vous pouvez réaliser ce que vous souhaitez intercepter de registerVirtualPathProviderinternerner à l'aide de la réflexion, en plus de la méthode Normal RegisterVirtualPathPathPathPathPathProvider. P> P>
+1: J'aimerais connaître la réponse aussi si, j'espère que cela aide avec la prime :)