Share via


Übersicht über die Vorkompilierung von ASP.NET-Webanwendungsprojekten

Standardmäßig werden Codedateien in einem Webanwendungsprojekt mithilfe von Microsoft Build Engine (MSBuild) in eine einzelne Assembly vorkompiliert. ASP.NET-Webseiten (.aspx) und Benutzersteuerelemente (.ascx) und MVC Razor-Ansichten (.cshtml und .vbhtml) werden vom ASP.NET-Compiler dynamisch auf dem Server kompiliert. Sie können optional auch die Webseiten, Benutzersteuerelemente und Razor-Ansichten vorkompilieren.

Hinweis

Dieses Thema bezieht sich ausschließlich auf Webanwendungsprojekte.Informationen zum Unterschied zwischen Webanwendungsprojekten und Websiteprojekten finden Sie unter Vergleich von Webanwendungsprojekten und Websiteprojekten in Visual Studio.Informationen zum Vorkompilieren von Websiteprojekten finden Sie unter ASP.NET Web Site Project Precompilation Overview.

Kompilierungsmodell

Sämtliche Codedateien (eigenständige Dateien, Code-Behind-Dateien und Designerklassendateien) im Projekt werden in eine einzelne Assembly vorkompiliert. Diese Assembly wird standardmäßig erstellt und im Ordner Bin beibehalten. Da bei diesem Kompilierungsmodell eine einzelne Assembly erstellt wird, können Sie Attribute wie Name und Version angeben. Sie können auch den Speicherort der Ausgabeassembly angeben. Klicken Sie im Projektmappen-Explorer mit der rechten Maustaste auf den Projektnamen, klicken Sie auf Eigenschaften, und klicken Sie dann auf die Registerkarte Erstellen. Auf der Registerkarte Erstellen befindet sich ein Feld mit dem Namen Ausgabepfad, in dem Sie den Pfad zur Ausgabeassembly angeben können.

Ein Webanwendungsprojekt wird nicht wie bei einem Websiteprojekt durch einen Projektordner definiert, sondern durch eine Projektdatei. Die Projektdatei verweist auf die im Projekt verwendeten Dateien und enthält die Assemblyverweise und andere Projektmetadateneinstellungen. Dateien im Projektordner, die nicht in der Projektdatei definiert sind, werden nicht als Teil des Webanwendungsprojekts kompiliert. Wenn Projekteinstellungen über Visual Studio oder Visual Web Developer Express hinzugefügt und geändert werden, wird die zu jedem Projekt generierte Projektdatei (.*proj) entsprechend angepasst.

Zum Ausführen und Debuggen von Seiten müssen Sie das vollständige Webanwendungsprojekt kompilieren. Das Erstellen des vollständigen Webanwendungsprojekts kann jedoch schnell gehen, da Visual Studio und Visual Web Developer Express ein inkrementelles Buildmodell verwenden, bei dem nur die geänderten Dateien erstellt werden.

Weitere Informationen finden Sie unter Web Application Projects Overview.

Aa983464.collapse_all(de-de,VS.110).gifKompilieren von Klassendateien

Webanwendungsprojekte verwenden MSBuild, um Klassendateien zu kompilieren. Diese Klassendateien werden in eine einzelne Assembly kompiliert. Standardmäßig werden sie im Ordner Bin abgelegt. Der Kompilierungsvorgang kann mithilfe standardmäßiger MSBuild-Erweiterbarkeitsregeln erweitert und angepasst werden. Weitere Informationen finden Sie unter MSBuild.

In der folgenden Tabelle werden die Klassendateitypen von Webanwendungsprojekten beschrieben, die in eine einzelne Assembly kompiliert werden.

Klassendateityp

Beschreibung

Eigenständig

Klassendateien, die Sie erstellen und zum Ordner Bin hinzufügen können.

Code-Behind

Benutzerdefinierter Code, der die Anzeige und anderes Verhalten in ASP.NET-Webseiten definiert.

Designer

Code, der automatisch generiert wird. Die .designer-Datei sollte nicht geändert werden.

Aa983464.collapse_all(de-de,VS.110).gifAnpassen von Kompilierungsoptionen

Auf der Eigenschaftenseite Anwendung des Fensters Projekt-Designer können Sie den Namen der Ausgabeassembly, die Version und andere Details angeben. Verwenden Sie die Seite Erstellen im Fenster Projekt-Designer, um die Buildkonfiguration des Projekts anzugeben. Sie können z. B. die Behandlungsweise von Fehlern festlegen sowie Details über die Assemblyausgabe angeben. Außerdem können Sie während der Kompilierung Präbuild- und Postbuildaktionen hinzufügen, indem Sie die entsprechenden Werte auf der Eigenschaftenseite Buildereignisse festlegen. Weitere Informationen zu Eigenschaftenseiten finden Sie unter Referenz zur Projekt-Designer-Benutzeroberfläche.

Festlegen der Eigenschaft "Buildvorgang"

Standardmäßig werden nur Klassendateien von Webanwendungsprojekten von MSBuild kompiliert, wenn die Eigenschaft Buildvorgang auf Kompilieren festgelegt ist. Wenn in einem Webanwendungsprojekt im Ordner „App_Code“ jedoch Klassendateien enthalten sind, werden diese Klassendateien von ASP.NET kompiliert. Dies gilt auch dann, wenn ihr Buildvorgang nicht explizit auf Kompilieren festgelegt ist.

Hinweis

Der Ordner "App_Code" ist für Websiteprojekte vorgesehen.In Webanwendungsprojekten ist dieser Ordner in der Regel nicht enthalten.Weitere Informationen über den Ordner App_Code finden Sie unter Shared Code Folders in ASP.NET Web Sites.

Dynamische Kompilierung

Codedateien im Projekt werden zwar mithilfe von MSBuild in eine einzelne Assembly vorkompiliert, ASP.NET-Webseiten (.aspx), Benutzersteuerelemente (.ascx) und MVC Razor-Ansichten (.cshtml und .vbhtml) eines Webanwendungsprojekts jedoch vom ASP.NET-Compiler dynamisch auf dem Server kompiliert. Das bedeutet, dass Sie an den kompilierten und bereitgestellten ASP.NET-Webseiten, Benutzersteuerelementen und Razor-Ansichten der Website nur eingeschränkt Änderungen vornehmen können. Sie können z. B. die Anordnung der Steuerelemente, die Farben, Schriftsätze und sonstige Darstellungseigenschaften von Seiten ändern. Wenn die Website die erste Anforderung für eine Seite empfängt, nachdem Sie eine solche Änderung vorgenommen haben, kompiliert ASP.NET die geänderten Dateien erneut.

Sie können ein Steuerelement in der CodeBehind-Datei definieren, sofern Sie es als öffentlich oder geschützt deklarieren. Da die ASPX-Seite von der CodeBehind-Datei erbt, verwendet die Seite dieses Steuerelement. Das Verschieben der Steuerelementdefinition in die CodeBehind-Datei empfiehlt sich in folgenden Situationen:

  • Wenn der Steuerelementtyp von einem integrierten ASP.NET-Typ abgeleitet werden muss.

  • Wenn Sie einen anderen Bereich als den Standardbereich für das Steuerelement wünschen. Der Bereich bezieht sich auf die Zugriffsebene, z. B. public, private, internal protected und protected internal.

  • Wenn Sie Metadatenattribute zur Deklaration des Steuerelements hinzufügen möchten.

  • Wenn Sie XML-Codekommentare für die Deklaration des Steuerelements schreiben möchten.

Weitere Informationen zum Hinzufügen von Steuerelementen finden Sie unter How to: Add Controls to an ASP.NET Web Page Programmatically.

Bereitstellung

Alle Klassendateien werden standardmäßig in eine einzelne Assembly kompiliert, das bedeutet, dass nur diese Assembly zusammen mit den ASPX-, ASCX-, CSHTML- und VBHTML-Dateien und statischen Inhaltsdateien bereitgestellt werden muss. In diesem Szenario wird das Markup in den ASPX-, ASCX-, CSHTML- und VBHTML-Dateien erst in ausführbaren Code kompiliert, wenn die Seite vom Browser angefordert wird.

Sie können jedoch unterschiedliche Kompilierungs- und Zusammenführungsoptionen angeben. Sie können z. B. ASPX-Dateien vorkompiliere, oder Sie können angeben, dass nicht nur eine, sondern mehrere Assemblys erstellt werden sollen. Weitere Informationen über Kompilierungs- und Zusammenführungsoptionen für Webanwendungsprojekte und deren Verwendung finden Sie in den folgenden Ressourcen:

Informationen über die Bereitstellung von Webanwendungsprojekten finden Sie unter Einstieg in die Webbereitstellung für Visual Studio und ASP.NET.

Siehe auch

Konzepte

Einstieg in die Webbereitstellung für Visual Studio und ASP.NET

Vergleich von Webanwendungsprojekten und Websiteprojekten in Visual Studio

Weitere Ressourcen

MSBuild