Vue d'ensemble de la précompilation ASP.NET
Mise à jour : novembre 2007
ASP.NET peut précompiler un site Web avant qu'il soit mis à la disposition des utilisateurs. Cela offre de nombreux avantages et permet notamment d'obtenir un temps de réponse plus rapide, de rechercher des erreurs, de protéger le code source et d'effectuer un déploiement efficace.
Vous pouvez également compiler un projet en utilisant le modèle de projet d'application Web. Tous les fichiers de code (fichiers autonomes, code-behind et de classe) du projet sont compilés dans un assembly unique et stockés dans le répertoire Bin. La compilation permettant de créer un assembly unique, vous pouvez spécifier des attributs, tels que le nom de l'assembly et la version. Vous pouvez également spécifier l'emplacement de l'assembly de sortie si vous ne souhaitez pas qu'il figure dans le répertoire Bin. Pour plus d'informations, consultez Compilation des projets d'application Web.
Cette rubrique contient les sections suivantes :
Scénarios
Fonctionnalités de précompilation
Contexte
Exemples de code
Fonctionnalités
La précompilation d'un site Web ASP.NET offre les avantages suivants :
Les utilisateurs bénéficient d'un temps de réponse plus rapide, car les pages et les fichiers de code n'ont plus besoin d'être compilés la première fois qu'ils sont demandés. Cela s'avère particulièrement utile sur les sites de grande taille qui sont fréquemment mis à jour.
Moyen d'identifier les bogues de compilation avant que les utilisateurs consultent un site.
Possibilité de créer une version compilée du site qui peut être déployée sur un serveur de production sans code source.
Retour au début
Contexte
Par défaut, les pages Web ASP.NET et les fichiers de code sont compilés dynamiquement lorsque les utilisateurs demandent pour la première fois une ressource (page du site Web, par exemple). Une fois que les pages et les fichiers de code ont été compilés pour la première fois, les ressources compilées sont mises en cache. Par conséquent, les requêtes suivantes de cette même page sont très efficaces.
ASP.NET peut également précompiler un site entier avant qu'il soit mis à la disposition des utilisateurs. ASP.NET offre les options suivantes pour précompiler un site :
Précompilation d'un site sur place. Cette option est utile pour les sites existants pour lesquels vous souhaitez améliorer les performances et exécuter la vérification des erreurs.
Précompilation d'un site pour le déploiement. Cette option crée une sortie spéciale que vous pouvez déployer sur un serveur de production.
En outre, vous pouvez précompiler un site pour qu'il soit accessible en lecture seule ou en mise à jour. Les sections suivantes fournissent plus de détails sur chaque option.
Précompilation sur place
Vous pouvez améliorer les performances d'un site Web en le précompilant. C'est notamment le cas pour les sites dont les pages Web et les fichiers de code ASP.NET font l'objet de fréquents ajouts et modifications. Dans un site Web fluide, le temps supplémentaire requis pour compiler dynamiquement des pages nouvelles et modifiées peut affecter la perception des utilisateurs quant à la qualité du site.
La précompilation d'un site sur place exécute efficacement la même compilation que celle produite lorsque les utilisateurs demandent des pages du site. Par conséquent, la principale amélioration en termes de performances est que les pages ne doivent pas être compilées pour la première requête.
Lorsque vous exécutez une précompilation sur place, tous les types de fichiers ASP.NET sont compilés. (Les fichiers HTML, les graphiques et les autres fichiers statiques non-ASP.NET sont laissés en l'état). Le processus de précompilation suit la même logique que celle qui est utilisée par ASP.NET pour la compilation dynamique, en tenant compte des dépendances entre les fichiers. Pendant la précompilation, le compilateur crée des assemblys pour toute la sortie exécutable et les place dans un dossier spécial sous le dossier %SystemRoot%\Microsoft.NET\Framework\version\Temporary ASP.NET Files. Par la suite, ASP.NET effectue les requêtes de pages à partir des assemblys de ce dossier.
Si vous précompilez à nouveau le site, seuls les fichiers nouveaux ou modifiés sont compilés (ou ceux qui ont des dépendances sur les fichiers nouveaux ou modifiés). En raison de cette optimisation du compilateur, il est utile de compiler le site même après des mises à jour mineures.
Précompilation pour le déploiement
La précompilation d'un site permet également de produire une version exécutable du site qui peut être déployée sur un serveur de production. La précompilation pour le déploiement crée une sortie sous forme de disposition. La disposition contient des assemblys, des informations de configuration, des informations relatives aux dossiers du site et des fichiers statiques (tels que des fichiers et graphiques HTML).
Une fois le site compilé, vous pouvez déployer la disposition sur un serveur de production à l'aide d'outils tels que la commande Windows XCopy, le protocole FTP, l'installation Windows, etc. Une fois la disposition déployée, elle joue le rôle du site et ASP.NET effectue les requêtes de pages à partir des assemblys de la disposition.
La précompilation d'un site pour le déploiement offre un moyen de protection du code source et d'autres propriétés intellectuelles. Pour plus d'informations sur l'utilisation du compilateur avec des fichiers pendant la compilation pour le déploiement, consultez Gestion des fichiers pendant la compilation de site pour le déploiement, plus loin dans cette rubrique.
Vous pouvez effectuer une précompilation pour le déploiement de deux manières : une précompilation pour le déploiement uniquement ou une précompilation pour le déploiement et la mise à jour.
Précompilation pour le déploiement uniquement
Lorsque vous effectuez une précompilation pour le déploiement uniquement, le compilateur produit des assemblys à partir de presque tous les fichiers sources ASP.NET compilés normalement au moment de l'exécution. Cela inclut le code de programme dans les pages, les fichiers de classe .cs et .vb, les autres fichiers de code et les fichiers de ressources. Le compilateur supprime la source et la balise de la sortie. Dans la disposition obtenue, les fichiers compilés sont générés pour chaque fichier .aspx (avec l'extension .compiled) qui contient des pointeurs vers l'assembly approprié de la page.
Pour modifier le site Web, notamment la disposition des pages, vous devez modifier les fichiers d'origine, recompiler le site et redéployer la disposition. La configuration du site constitue la seule exception. Vous pouvez apporter des modifications au fichier Web.config sur le serveur de production sans avoir besoin de recompiler le site.
Cette option offre le plus haut niveau de protection pour les pages Web ASP.NET et les meilleures performances au démarrage.
Précompilation pour le déploiement et la mise à jour
Lorsque vous effectuez une précompilation pour le déploiement et la mise à jour, le compilateur produit des assemblys à partir du code source (à l'exception du code des pages à fichier unique) et d'autres fichiers qui produisent normalement des assemblys, tels que les fichiers de ressources. Le compilateur convertit les fichiers .aspx en fichiers uniques qui utilisent le modèle code-behind compilé et les copie dans la présentation.
Cette option vous permet d'apporter des modifications mineures aux pages Web ASP.NET du site une fois qu'elles ont été compilées. Par exemple, vous pouvez modifier la disposition des contrôles, les couleurs, les polices et les autres aspects d'apparence des pages. Vous pouvez ajouter également des contrôles, tant qu'ils ne requièrent pas de gestionnaires d'événements ou d'autres codes.
Lorsque le site est exécuté pour la première fois, ASP.NET effectue une compilation supplémentaire pour créer la sortie à partir du balisage.
Remarque : |
---|
Un site précompilé pouvant être mis à jour ne permet pas à plusieurs pages de référencer la même classe CodeFile. |
Matrice de décision de précompilation
Le tableau suivant vous permet de choisir le modèle de compilation à utiliser. Certaines des options répertoriées dans le tableau sont décrites ultérieurement dans cette rubrique.
Objectif |
Modèle de compilation |
---|---|
Développez rapidement des applications sans vous soucier de la compilation du code. |
Utilisez la compilation par défaut (pas de précompilation). |
Améliorez le temps de réponse pour la première requête de page effectuée sur le site Web. |
Utilisez la précompilation sur place ou l'une des options de compilation de déploiement. |
Séparez le code source du code de l'interface utilisateur. |
Utilisez la précompilation avec une interface utilisateur pouvant être mise à jour. |
Modifiez le code de l'interface utilisateur sans modifier le code source. |
Utilisez la précompilation avec une interface utilisateur pouvant être mise à jour. |
Supprimez le code source et le code de l'interface utilisateur du serveur de production. |
Utilisez la précompilation avec une interface utilisateur qui ne peut pas être mise à jour. |
Mettez à jour l'application en remplaçant des assemblys spécifiques. |
Utilisez la précompilation avec des noms fixes. |
Renforcez la sécurité de l'application en utilisant des assemblys avec nom fort. |
Utilisez la précompilation avec des assemblys signés. |
Exécution de la précompilation
Vous pouvez précompiler un site Web à l'aide de l'outil Aspnet_compiler.exe, à partir de la ligne de commande. Pour plus d'informations, consultez Comment : précompiler des sites Web ASP.NET à des fins de développement et ASP.NET Compilation Tool, outil (Aspnet_compiler.exe). Visual Studio inclut également des commandes pour précompiler un site Web à partir de l'IDE.
Remarque : |
---|
La précompilation d'un site Web compile uniquement ce site, et non les sites enfants. Si un site Web contient un sous-dossier désigné en tant qu'application dans IIS, l'application enfant n'est pas compilée lorsque vous précompilez le dossier parent. |
Lorsque vous précompilez un site Web, une restriction de codage s'applique aux sites que vous projetez de compiler avec la protection de source activée. Une classe de page de base (classe code-behind) peut référencer la classe de page associée (fichier .aspx) et les membres de classe de page à l'aide d'un nom de classe qualifié complet. Toutefois, ce type de référence ne fonctionnera pas lors de la précompilation du site avec la protection de source activée. En effet, la classe de page de base du fichier code-behind n'est pas située dans le même assembly que la classe de page dérivée de la page .aspx. Pour plus d'informations sur la précompilation avec la protection de source activée, consultez Comment : signer des assemblys pour des sites Web précompilés.
Compilation par défaut
Vous n'avez pas besoin de compiler manuellement une application ASP.NET. Par défaut, ASP.NET compile l'application Web à la première requête d'une page de l'application par un navigateur Web. Si vous apportez une modification à un fichier de l'application, le runtime ASP.NET détermine les dépendances du fichier modifié lors de la requête de page suivante. Il recompile uniquement les fichiers affectés par la modification.
Avantages
Les avantages de l'utilisation de la compilation par défaut sont les suivants :
Simple à utiliser. Le compilateur ASP.NET fait tout le travail pour vous.
Meilleur modèle de compilation à choisir pendant le développement lorsque les étapes supplémentaires requises pour la précompilation d'un site Web ralentissent le processus de développement.
Inconvénients
Les inconvénients de l'utilisation de la compilation par défaut sont les suivants :
Peut provoquer des retards considérables lorsque le site Web est demandé en premier.
Requiert que vous stockiez des fichiers de code source sur le serveur de production.
Rend le code source et le code de l'interface utilisateur accessibles à toute personne ayant un accès de système de fichiers au répertoire du site Web sur le serveur.
À quel moment utiliser la compilation par défaut
Utilisez la compilation par défaut dans les situations suivantes :
Lorsque vous développez et testez un site Web.
Pour les sites Web qui possèdent des informations essentiellement statiques.
Pour les sites Web qui ne sont pas souvent modifiés.
Lorsque vous ne vous préoccupez pas du stockage des fichiers de code source sur le serveur de production.
Compilation sur place
Vous pouvez précompiler un site qui est déjà situé sur un serveur de production. Cette méthode s'appelle la compilation sur place. Si vous apportez une modification à un fichier de l'application, vous pouvez recompiler le fichier affecté avec l'outil ASP.NET Compilation Tool. Les fichiers affectés sont également compilés à nouveau la prochaine fois qu'une page est demandée à partir de l'application.
Pour plus d'informations sur ce modèle de compilation, consultez Comment : précompiler des sites Web ASP.NET.
Avantages
Les avantages de l'utilisation de la compilation sur place sont les suivants :
Le temps de réponse du site Web à la première requête est réduit.
Aucune étape de déploiement spéciale n'est nécessaire ; l'application est compilée exactement comme si une page avait été demandée à partir du site.
Inconvénients
Les inconvénients de l'utilisation de la compilation sur place sont les suivants :
Tout le code source de l'application doit être stocké sur le serveur de production.
Rend le code source et le code de l'interface utilisateur accessibles à toute personne ayant accès au répertoire du site Web.
À quel moment utiliser la compilation sur place
Utilisez la compilation sur place dans les situations suivantes :
Vous apportez des modifications fréquentes aux pages du site Web.
Vous ne vous préoccupez pas du stockage des fichiers de code source sur le serveur de production.
Vous souhaitez améliorer le temps de réponse des premières requêtes de page.
Précompilation avec une interface utilisateur pouvant être mise à jour
En utilisant le commutateur -u de l'outil ASP.NET Compilation Tool, vous pouvez compiler le code source (.cs, fichiers .vb et fichiers .resource) dans une DLL. Vous pouvez conserver le balisage de l'interface utilisateur dans les fichiers .aspx disponibles pour la mise à jour. Une fois que vous avez déployé le site Web sur un serveur de production, vous pouvez apporter des modifications au code .aspx sans avoir besoin de recompiler l'ensemble du site Web.
Pour plus d'informations sur cette méthode de compilation, consultez Comment : précompiler des sites Web ASP.NET à des fins de développement.
Avantages
Les avantages de la précompilation d'un site Web qui dispose d'une interface utilisateur pouvant être mise à jour sont les suivants :
Le temps de réponse du site Web à la première requête est réduit.
Les concepteurs d'interfaces utilisateur peuvent modifier l'aspect et le comportement d'un site Web sans avoir besoin de le recompiler entièrement.
Le code source de l'application contient un moyen de protection de la propriété intellectuelle. Le code est ainsi protégé de toute consultation informelle par une personne disposant d'un accès de système de fichiers au répertoire du site Web.
Inconvénients
Les inconvénients de la précompilation d'un site Web qui dispose d'une interface utilisateur pouvant être mise à jour sont les suivants :
Requiert une étape de compilation distincte avant le déploiement sur les serveurs de production.
La propriété intellectuelle contenue dans l'interface utilisateur (fichiers .aspx) de l'application est accessible par toute personne ayant accès au répertoire du site Web.
Plusieurs pages ne peuvent pas référencer la même classe CodeFile, qui correspond au fichier de code associé à une page qui utilise le modèle code-behind.
À quel moment effectuer la précompilation avec une interface utilisateur pouvant être mise à jour
Précompilez une application pour bénéficier d'une interface utilisateur pouvant être mise à jour dans les situations suivantes :
Les concepteurs d'interfaces utilisateur travaillent de manière indépendante vis-à-vis des développeurs de code source.
Le code source de programme contient une propriété intellectuelle que vous souhaitez protéger contre la consultation informelle.
Vous ne souhaitez pas stocker le code source de programme sur vos serveurs de production.
Précompilation avec une interface utilisateur qui ne peut pas être mise à jour
L'outil ASP.NET Compilation Tool peut compiler tout le code source pour une application dans les DLL déployées dans le répertoire Bin de l'application. Cela inclut des fichiers de l'interface utilisateur, tels que les fichiers .aspx et .ascx.
Pour plus d'informations sur cette méthode de compilation, consultez Comment : précompiler des sites Web ASP.NET à des fins de développement.
Avantages
Les avantages de la précompilation avec une interface qui ne peut pas être mise à jour sont les suivants :
Le temps de réponse du site Web à la première requête est réduit.
Le code source de l'application contient un moyen de protection de la propriété intellectuelle et du code d'interface utilisateur. Le code est ainsi protégé de toute consultation informelle par une personne disposant d'un accès au répertoire du site Web.
Inconvénients
Les inconvénients de la précompilation avec une interface qui ne peut pas être mise à jour sont les suivants :
Requiert une étape de compilation distincte avant le déploiement sur les serveurs de production.
Les moindres modifications apportées à l'interface utilisateur de l'application nécessitent la recompilation de l'ensemble du site Web.
À quel moment effectuer la précompilation avec une interface utilisateur qui ne peut pas être mise à jour
Précompilez le site Web pour bénéficier d'une interface utilisateur ne pouvant pas être mise à jour dans les situations suivantes :
Le code d'interface utilisateur contient une propriété intellectuelle que vous souhaitez protéger contre la consultation informelle.
Vous n'avez pas souvent besoin de modifier l'interface utilisateur.
Vous souhaitez uniquement que les DLL soient compilées sur le serveur de production.
Précompilation sur les assemblys à nom fixe
L'outil ASP.NET Compilation Tool utilise des noms aléatoires pour les assemblys générés au cours de la compilation. Le nom de l'assembly change chaque fois que l'application est recompilée.
Étant donné que les noms des assemblys changent, vous devez redéployer toute l'application pour prendre en charge un assembly. Toutefois, à l'aide du commutateur -fixednames de l'outil ASP.NET Compilation Tool, vous pouvez créer un assembly pour chaque page de l'application. Le nom de l'assembly ne changera pas lors des compilations suivantes. Par conséquent, vous pouvez créer des Service Releases de votre application qui remplacent uniquement les assemblys modifiés.
Étant donné que l'utilisation du commutateur -fixednames crée un assembly pour chaque page, vous devez limiter le nombre de pages de l'application.
Pour plus d'informations sur cette méthode de précompilation, consultez Comment : générer des noms fixes avec l'outil de compilation ASP.NET.
Avantages
Les avantages de la précompilation sur des assemblys à nom fixe sont les suivants :
Le nom des assemblys ne change pas d'une compilation à l'autre. Cela vous permet de remplacer des assemblys spécifiques sans redéployer l'application entière.
Les mises à jour mineures apportées à l'application peuvent être plus ciblées.
Inconvénients
Les inconvénients de la précompilation sur des assemblys à nom fixe sont les suivants :
- Un assembly est créé pour chaque page de l'application. Cela peut créer de nombreux assemblys pour les sites qui possèdent un grand nombre de pages.
À quel moment effectuer la précompilation sur des assemblys à nom fixe
Précompilez le site Web sur des assemblys à nom fixe dans la situation suivante :
- Vous devez prendre en charge des applications Web sans remplacer l'ensemble de l'application.
Précompilation sur les assemblys signés
Vous pouvez utiliser l'outil ASP.NET Compilation Tool pour créer des assemblys avec nom fort qui peuvent être déployés sur le Global Assembly Cache (GAC) du serveur ou dans le répertoire Bin de l'application. Un assembly signé complique davantage la tâche aux utilisateurs malveillants qui tentent de remplacer les assemblys de votre application par du code malveillant.
Pour plus d'informations sur cette méthode de compilation, consultez Comment : signer des assemblys pour des sites Web précompilés.
Avantages
Les avantages de la précompilation sur des assemblys signés sont les suivants :
- Les assemblys signés renforcent la sécurité de l'application en compliquant leur remplacement par du code malveillant.
Inconvénients
Les inconvénients de la précompilation sur des assemblys signés sont les suivants :
La gestion des clés dans les environnements de développement partagés peut être complexe.
Les assemblys doivent avoir l'attribut AllowPartiallyTrustedCallersAttribute pour être appelés par le runtime ASP.NET.
À quel moment effectuer la précompilation sur des assemblys signés
Précompilez le site Web sur des assemblys signés dans les situations suivantes :
Les utilisateurs ont accès au répertoire ou au GAC de l'application et ils peuvent remplacer les assemblys de l'application.
Vous souhaitez limiter la possibilité de remplacement par des tiers des assemblys générés par le code d'application.
Écriture de la sortie de précompilation
Lorsque le processus de précompilation est fini, la sortie obtenue est écrite dans un dossier que vous spécifiez. Vous pouvez écrire la sortie dans tout dossier auquel vous avez accès dans le système de fichiers, en utilisant le protocole FTP (File Transfer Protocol) ou HTTP. Vous devez avoir les autorisations appropriées pour pouvoir écrire sur le site cible.
Remarque : |
---|
Le processus de publication déploie uniquement les fichiers des dossiers et des sous-dossiers de votre site Web. Il ne déploie pas le fichier Machine.config. Par conséquent, la configuration du serveur Web cible peut ne pas être la même sur votre ordinateur, ce qui peut avoir une incidence sur le comportement de l'application. |
Vous pouvez spécifier un dossier cible sur un serveur intermédiaire ou un serveur de production, ou vous pouvez écrire la sortie dans un dossier sur l'ordinateur local. Si vous spécifiez un dossier sur un serveur de production, vous pouvez effectuer la précompilation et le déploiement en une seule étape. Si vous choisissez d'écrire la sortie dans un dossier qui ne fait pas partie d'un site Web, vous pouvez la copier sur le serveur au cours d'une étape séparée.
Remarque : |
---|
Si vous ouvrez un site Web précompilé à l'aide de Visual Studio, vous ne pourrez pas générer le site Web. Les options de génération seront désactivées. Pour modifier le site, il est recommandé de modifier les fichiers du site Web d'origine, de précompiler le site et de le publier à nouveau. |
La sortie du processus de compilation inclut les assemblys compilés pour le code ou les pages. Si vous choisissez l'option autorisant la mise à jour du site précompilé, toutes les classes code-behind de vos fichiers .aspx, .asmx et .ashx sont compilées dans des assemblys. Toutefois, les fichiers .aspx, .asmx et .ashx eux-mêmes sont copiés en l'état dans le dossier cible afin que vous puissiez modifier leur disposition après avoir déployé le site. Pour les sites précompilés pouvant être mis à jour, le code des pages à fichier unique n'est pas compilé dans un assembly. À la place, il est déployé en tant que code source.
Les fichiers statiques ne sont pas compilés. À la place, ils sont copiés en l'état dans le dossier de sortie. Les fichiers statiques comprennent des graphiques, des fichiers .htm ou .html, des fichiers texte, etc. Pour plus d'informations, consultez Gestion des fichiers pendant la compilation de site pour le déploiement plus loin dans cette rubrique.
Si une erreur se produit pendant la précompilation, elle est indiquée dans les fenêtres Sortie et Liste d'erreurs. En cas d'erreurs pendant la précompilation, le site n'est pas compilé ni publié.
Gestion des fichiers pendant une précompilation ASP.NET
Lorsque vous précompilez un site pour le déploiement, ASP.NET crée une disposition, c'est-à-dire une structure qui contient la sortie du compilateur. Cette section décrit la manière dont les fichiers sont gérés pendant la précompilation, ainsi que le contenu et la structure de la disposition.
Vous pouvez précompiler le code source (tout fichier qui produit un assembly, notamment le code et les ressources du programme) et le balisage (fichiers .aspx), ou uniquement le code source.
Fichiers compilés
Le processus de précompilation exécute des actions sur différents types de fichiers d'une application Web ASP.NET. Les fichiers sont traités différemment selon que l'application est en train d'être précompilée uniquement pour le déploiement ou pour le déploiement et la mise à jour.
Remarque : |
---|
La précompilation d'un site pour le déploiement uniquement ou pour le déploiement et la mise à jour ne conserve pas de listes de contrôle d'accès aux fichiers dans les sous-répertoires et fichiers cibles. Par exemple, si vous avez précédemment précompilé un site et l'avez déployé à un emplacement cible, avez modifié la liste de contrôle d'accès d'un fichier, puis avez précompilé et déployé à nouveau le site, la modification de la liste sera perdue. |
Le tableau suivant décrit les différents types de fichiers et les actions effectuées sur ceux-ci lorsque l'application est précompilée uniquement pour le déploiement.
Types de fichiers |
Action de précompilation |
Emplacement de sortie |
---|---|---|
.aspx, .ascx, .master |
Génère les assemblys et un fichier .compiled qui pointe sur l'assembly. Le fichier d'origine est conservé sur place en tant qu'espace réservé pour répondre aux requêtes. |
Les assemblys et fichiers .compiled sont écrits dans le dossier Bin. Les pages (fichiers .aspx dont le contenu est supprimé) sont conservées dans leurs emplacements d'origine. |
.asmx, .ashx |
Génère les assemblys. Le fichier d'origine est conservé sur place en tant qu'espace réservé pour répondre aux requêtes. |
Dossier Bin |
Fichiers contenus dans le dossier App_Code |
Génère un ou plusieurs assemblys (selon les paramètres Web.config).
Remarque :
Le contenu statique du dossier App_Code n'est pas copié dans le dossier cible.
|
Dossier Bin |
.Fichiers .cs ou .vb qui ne sont pas contenus dans le dossier App_Code |
Effectue une compilation à l'aide de la page ou de la ressource qui en dépend. |
Dossier Bin |
Fichiers .dll existants dans le dossier Bin. |
Copie les fichiers tels quels. |
Dossier Bin |
Fichiers de ressources (.resx) |
Pour les fichiers .resx trouvés dans les dossiers App_LocalResources ou App_GlobalResources, génère un assembly (ou des assemblys) et une structure de culture. |
Dossier Bin |
Fichiers contenus dans le dossier App_Themes et ses sous-dossiers |
Génère des assemblys dans les fichiers cibles et des fichiers .compiled qui pointent vers les assemblys. |
Dossier Bin |
Fichiers statiques (.htm, .html, .js, fichiers graphiques, etc.) |
Copie les fichiers tels quels. |
Même structure que dans la source. |
Fichiers de définition de navigateur |
Copie les fichiers tels quels.
Remarque :
Les informations du navigateur sont héritées des fichiers de configuration au niveau de l'ordinateur et peuvent, par conséquent, se comporter différemment sur le serveur cible.
|
Dossier App_Browsers |
Projets dépendants |
Génère la sortie du projet dépendant dans un assembly. |
Dossier Bin |
Fichiers Web.config |
Copie les fichiers tels quels. |
Même structure que dans la source. |
Fichiers Global.asax |
Génère un assembly. |
Dossier Bin |
Le tableau suivant décrit les différents types de fichiers et les actions effectuées sur ceux-ci lorsque l'application est précompilée pour le déploiement et la mise à jour.
Types de fichiers |
Action de précompilation |
Emplacement de sortie |
---|---|---|
.aspx, .ascx, .master |
Génère des assemblys pour les fichiers qui possèdent des fichiers de classe code-behind. Génère un fichier .compiled qui pointe vers l'assembly. Les versions à fichier unique de ces fichiers sont copiées en l'état dans la cible. |
Les assemblys et les fichiers .compiled sont écrits dans le dossier Bin. |
.asmx, .ashx |
Copie les fichiers tels quels sans compilation. |
Même structure que dans la source. |
Fichiers contenus dans le dossier App_Code |
Génère un ou plusieurs assemblys (selon les paramètres Web.config).
Remarque :
Le contenu statique du dossier App_Code n'est pas copié dans le dossier cible.
|
Dossier Bin |
Fichiers .cs ou .vb qui ne sont pas contenus dans le dossier App_Code |
Effectue une compilation à l'aide de la page ou de la ressource qui en dépend. |
Dossier Bin |
Fichiers .dll existants dans le dossier Bin. |
Copie les fichiers tels quels. |
Dossier Bin |
Fichiers de ressources (.resx) |
Pour les fichiers .resx des dossiers App_GlobalResources, génère un assembly (ou des assemblys) et une structure de culture. Pour les fichiers .resx des dossiers App_LocalResources, copie les fichiers tels quels dans le dossier App_LocalResources de l'emplacement de sortie. |
Les assemblys sont placés dans le dossier Bin |
Fichiers contenus dans le dossier App_Themes et ses sous-dossiers |
Copie les fichiers tels quels. |
Même structure que dans la source. |
Fichiers statiques (.htm, .html, .js, fichiers graphiques, etc.) |
Copie les fichiers tels quels. |
Même structure que dans la source. |
Fichiers de définition de navigateur |
Copie les fichiers tels quels.
Remarque :
Les informations du navigateur sont héritées des fichiers de configuration au niveau de l'ordinateur et peuvent, par conséquent, se comporter différemment sur le serveur cible.
|
Dossier App_Browsers |
Projets dépendants |
Génère la sortie du projet dépendant dans un assembly. |
Dossier Bin |
Fichiers Web.config |
Copie les fichiers tels quels. |
Même structure que dans la source. |
Fichiers Global.asax |
Génère un assembly. |
Dossier Bin |
Fichiers .compiled
Pour les fichiers exécutables d'une application Web ASP.NET, le compilateur ajoute l'extension de nom de fichier .compiled au nom des assemblys et des fichiers. Le nom de l'assembly est généré par le compilateur. Le fichier .compiled ne contient pas de code exécutable. Il contient uniquement les informations dont ASP.NET a besoin pour rechercher l'assembly approprié.
Après avoir déployé l'application précompilée, ASP.NET utilise les assemblys du dossier Bin pour traiter les requêtes. La sortie de précompilation inclut des fichiers .aspx ou .asmx comme espaces réservés pour les pages. Les fichiers d'espace réservé ne contiennent pas de code. Ils existent uniquement pour appeler ASP.NET pour une requête de page spécifique. Les fichiers d'espace réservé offrent également un moyen via lequel les autorisations d'accès aux fichiers peuvent être configurées pour restreindre l'accès aux pages.
Mise à jour de sites Web précompilés
Après avoir déployé un site Web précompilé, vous pouvez apporter des modifications mineures aux fichiers du site. Le tableau suivant décrit l'incidence de différents types de modifications.
Type de fichier |
Modifications autorisées (déploiement uniquement) |
Modifications autorisées (déploiement et mise à jour) |
---|---|---|
Fichiers statiques (.htm, .html, .js, fichiers graphiques, etc.) |
Les fichiers statiques peuvent être modifiés, supprimés ou ajoutés. Si une page Web ASP.NET fait référence à des pages ou des éléments de page modifiés ou supprimés, il peut s'ensuivre des erreurs. |
Les fichiers statiques peuvent être modifiés, supprimés ou ajoutés. Si une page Web ASP.NET fait référence à des pages ou des éléments de page modifiés ou supprimés, il peut s'ensuivre des erreurs. |
Fichier .aspx |
Aucune modification n'est autorisée sur les pages existantes. Aucun nouveau fichier .aspx ne peut être ajouté. |
Vous pouvez modifier la disposition des fichiers .aspx et ajouter des éléments qui ne requièrent pas de code, tels que des éléments HTML et des contrôles serveur ASP.NET qui ne possèdent pas de gestionnaires d'événements. Vous pouvez également ajouter de nouveaux fichiers .aspx qui seront compilés à la première requête. |
Fichiers .skin |
Les modifications et les nouveaux fichiers .skin sont ignorés. |
Les modifications et les nouveaux fichiers .skin sont autorisés. |
Fichiers Web.config |
Les modifications qui affectent la compilation des fichiers .aspx sont autorisées. Les options de compilation pour le débogage ou le traitement par lot sont ignorées. Aucune modification des propriétés de profil ou des éléments de fournisseur n'est autorisée. |
Les modifications sont autorisées si elles n'affectent pas la compilation du site ou de la page. Cela inclut les paramètres du compilateur, les niveaux de confiance et la globalisation. Les modifications qui affectent la compilation ou qui modifient le comportement des pages compilées sont ignorées ou peuvent générer des erreurs. Les autres modifications sont autorisées. |
Définitions du navigateur |
Les modifications et les nouveaux fichiers sont autorisés. |
Les modifications et les nouveaux fichiers sont autorisés. |
Assemblys compilés à partir des fichiers de ressources (.resx) |
De nouveaux fichiers d'assembly de ressources peuvent être ajoutés aux ressources globales et aux ressources locales. |
De nouveaux fichiers d'assembly de ressources peuvent être ajoutés aux ressources globales et aux ressources locales. |
Exemples de code
Comment : précompiler des sites Web ASP.NET à des fins de développement
Comment : signer des assemblys pour des sites Web précompilés
Comment : créer des assemblys dont la version est gérée pour les sites Web précompilés
Comment : générer des noms fixes avec l'outil de compilation ASP.NET
Comment : configurer des sites Web publiés
Retour au début
Voir aussi
Référence
ASP.NET Compilation Tool, outil (Aspnet_compiler.exe)
Retour au début