ASP.NET Webbereitstellung mit Visual Studio: Vorbereiten der Datenbankbereitstellung

Herunterladen des Starterprojekts

In dieser Tutorialreihe erfahren Sie, wie Sie mithilfe von Visual Studio 2012 oder Visual Studio 2010 eine ASP.NET Webanwendung für Azure App Service Web-Apps oder einen Hostinganbieter eines Drittanbieters bereitstellen (veröffentlichen). Informationen zur Reihe finden Sie im ersten Tutorial der Reihe.

Übersicht

In diesem Tutorial erfahren Sie, wie Sie das Projekt für die Datenbankbereitstellung vorbereiten. Die Datenbankstruktur und einige (nicht alle) Daten in den beiden Datenbanken der Anwendung müssen für Test-, Staging- und Produktionsumgebungen bereitgestellt werden.

Beim Entwickeln einer Anwendung geben Sie in der Regel Testdaten in eine Datenbank ein, die Sie nicht auf einem Livestandort bereitstellen möchten. Möglicherweise verfügen Sie jedoch auch über einige Produktionsdaten, die Sie bereitstellen möchten. In diesem Tutorial konfigurieren Sie das Contoso University-Projekt und bereiten SQL-Skripts so vor, dass bei der Bereitstellung die richtigen Daten enthalten sind.

Erinnerung: Wenn Sie eine Fehlermeldung erhalten oder etwas nicht funktioniert, während Sie das Tutorial durchlaufen, überprüfen Sie unbedingt die Seite zur Problembehandlung.

SQL Server Express LocalDB

Die Beispielanwendung verwendet SQL Server Express LocalDB. SQL Server Express ist die kostenlose Edition von SQL Server. Es wird häufig während der Entwicklung verwendet, da es auf der gleichen Datenbank-Engine wie Vollversionen von SQL Server basiert. Sie können mit SQL Server Express testen und sicher sein, dass sich die Anwendung in der Produktion gleich verhält, mit wenigen Ausnahmen für Features, die zwischen SQL Server Editionen variieren.

LocalDB ist ein spezieller Ausführungsmodus von SQL Server Express, mit dem Sie mit Datenbanken als MDF-Dateien arbeiten können. In der Regel werden LocalDB-Datenbankdateien im Ordner App_Data eines Webprojekts gespeichert. Das Feature "Benutzer instance" in SQL Server Express ermöglicht ihnen auch die Arbeit mit MDF-Dateien, aber das Feature "Benutzer instance" ist veraltet. Daher wird LocalDB für die Arbeit mit MDF-Dateien empfohlen.

In der Regel wird SQL Server Express nicht für Produktionswebanwendungen verwendet. LocalDB wird insbesondere nicht für die Verwendung in der Produktion mit einer Webanwendung empfohlen, da sie nicht für die Verwendung mit IIS konzipiert ist.

In Visual Studio 2012 wird LocalDB standardmäßig mit Visual Studio installiert. In Visual Studio 2010 und früheren Versionen wird SQL Server Express (ohne LocalDB) standardmäßig mit Visual Studio installiert. Aus diesem Grund haben Sie es als eine der Voraussetzungen im ersten Tutorial dieser Reihe installiert.

Weitere Informationen zu SQL Server Editionen, einschließlich LocalDB, finden Sie in den folgenden Ressourcen Arbeiten mit SQL Server Datenbanken.

Entity Framework und Universelle Anbieter

Für den Datenbankzugriff benötigt die Contoso University-Anwendung die folgende Software, die mit der Anwendung bereitgestellt werden muss, da sie nicht im .NET Framework enthalten ist:

Da diese Software in NuGet-Paketen enthalten ist, ist das Projekt bereits so eingerichtet, dass die erforderlichen Assemblys mit dem Projekt bereitgestellt werden. (Die Links verweisen auf die aktuellen Versionen dieser Pakete, die möglicherweise neuer sind als das, was in dem Startprojekt installiert ist, das Sie für dieses Tutorial heruntergeladen haben.)

Wenn Sie die Bereitstellung bei einem Drittanbieter anstelle von Azure durchführen, stellen Sie sicher, dass Sie Entity Framework 5.0 oder höher verwenden. Frühere Versionen von Code First-Migrationen erfordern voll vertrauenswürdig, und die meisten Hostinganbieter führen Ihre Anwendung in Mittlerer Vertrauensstellung aus. Weitere Informationen zu Mittlerer Vertrauensstellung finden Sie im Tutorial Bereitstellen in IIS als Testumgebung .

Konfigurieren Code First-Migrationen für die Bereitstellung von Anwendungsdatenbanken

Die Anwendungsdatenbank der Contoso University wird von Code First verwaltet, und Sie stellen sie mithilfe von Code First-Migrationen bereit. Eine Übersicht über die Datenbankbereitstellung mithilfe von Code First-Migrationen finden Sie im ersten Tutorial dieser Reihe.

Wenn Sie eine Anwendungsdatenbank bereitstellen, stellen Sie ihre Entwicklungsdatenbank in der Regel nicht einfach mit allen darin enthaltenen Daten für die Produktion bereit, da ein Großteil der Darin enthaltenen Daten wahrscheinlich nur zu Testzwecken vorhanden ist. Beispielsweise sind die Namen der Kursteilnehmer in einer Testdatenbank fiktiv. Andererseits können Sie häufig nicht nur die Datenbankstruktur ohne Daten bereitstellen. Einige der Daten in Ihrer Testdatenbank können echte Daten sein und müssen vorhanden sein, wenn Benutzer mit der Verwendung der Anwendung beginnen. Ihre Datenbank kann beispielsweise über eine Tabelle verfügen, die gültige Bewertungswerte oder echte Abteilungsnamen enthält.

Um dieses allgemeine Szenario zu simulieren, konfigurieren Sie eine Code First-Migrationen-MethodeSeed, die nur die Daten in die Datenbank einfügt, die in der Produktion vorhanden sein sollen. Diese Seed Methode sollte keine Testdaten einfügen, da sie in der Produktion ausgeführt wird, nachdem Code First die Datenbank in der Produktion erstellt hat.

In früheren Versionen von Code First vor der Veröffentlichung von Migrationen war es üblich Seed , dass Methoden Testdaten einfügen, da bei jeder Modelländerung während der Entwicklung die Datenbank vollständig gelöscht und neu erstellt werden musste. Bei Code First-Migrationen werden Testdaten nach Datenbankänderungen beibehalten, sodass das Einschließen von Testdaten in die Seed -Methode nicht erforderlich ist. Das projekt, das Sie heruntergeladen haben, verwendet die -Methode zum Einschließen aller Daten in die Seed -Methode einer Initialisiererklasse. In diesem Tutorial deaktivieren Sie diese Initialisiererklasse und aktivieren Migrationen. Anschließend aktualisieren Sie die Seed -Methode in der Migrations-Konfigurationsklasse, sodass nur Daten eingefügt werden, die in die Produktion eingefügt werden sollen.

Das folgende Diagramm veranschaulicht das Schema der Anwendungsdatenbank:

School_database_diagram

Für diese Tutorials gehen Sie davon aus, dass die Student Tabellen und Enrollment leer sein sollten, wenn die Website zum ersten Mal bereitgestellt wird. Die anderen Tabellen enthalten Daten, die vorab geladen werden müssen, wenn die Anwendung live geschaltet wird.

Deaktivieren des Initialisierers

Da Sie Code First-Migrationen verwenden, müssen Sie den DropCreateDatabaseIfModelChanges Code First-Initialisierer nicht verwenden. Der Code für diesen Initialisierer befindet sich in der Datei SchoolInitializer.cs im Projekt ContosoUniversity.DAL. Eine Einstellung im appSettings -Element der Web.config-Datei bewirkt, dass dieser Initialisierer ausgeführt wird, wenn die Anwendung zum ersten Mal versucht, auf die Datenbank zuzugreifen:

<appSettings>
  <add key="Environment" value="Dev" />
  <add key="DatabaseInitializerForType ContosoUniversity.DAL.SchoolContext, ContosoUniversity.DAL" value="ContosoUniversity.DAL.SchoolInitializer, ContosoUniversity.DAL" />
</appSettings>

Öffnen Sie die Anwendung Web.config Datei, und entfernen Sie das Element, das add die Code First-Initialisiererklasse angibt, oder kommentieren Sie es aus. Das appSettings Element sieht nun wie folgt aus:

<appSettings>
  <add key="Environment" value="Dev" />
</appSettings>

Hinweis

Eine weitere Möglichkeit zum Angeben einer Initialisiererklasse ist der Aufruf Database.SetInitializer in der Application_Start -Methode in der Datei Global.asax . Wenn Sie Migrationen in einem Projekt aktivieren, das diese Methode zum Angeben des Initialisierers verwendet, entfernen Sie diese Codezeile.

Hinweis

Wenn Sie Visual Studio 2013 verwenden, fügen Sie die folgenden Schritte zwischen den Schritten 2 und 3 hinzu: (a) Geben Sie in PMC "update-package entityframework -version 6.1.1" ein, um die aktuelle Version von EF abzurufen. Erstellen Sie dann (b) das Projekt, um eine Liste von Buildfehlern zu erhalten, und beheben Sie diese. Löschen Sie using-Anweisungen für nicht mehr vorhandene Namespaces, klicken Sie mit der rechten Maustaste, und klicken Sie auf Auflösen, um using-Anweisungen dort hinzuzufügen, wo sie benötigt werden, und ändern Sie die Vorkommen von System.Data.EntityState in System.Data.Entity.EntityState.

Aktivieren von Code First-Migrationen

  1. Stellen Sie sicher, dass das Projekt ContosoUniversity (nicht ContosoUniversity.DAL) als Startprojekt festgelegt ist. Klicken Sie Projektmappen-Explorer mit der rechten Maustaste auf das Projekt ContosoUniversity, und wählen Sie Als Startprojekt festlegen aus. Code First-Migrationen suchen im Startprojekt nach der Datenbankverbindungszeichenfolge.

  2. Wählen Sie im Menü Extras die Option NuGet-Paket-Manager-Paket-Manager-Konsole> aus.

    Selecting_Package_Manager_Console

  3. Wählen Sie oben im Fenster Paket-Manager-Konsole contosoUniversity.DAL als Standardprojekt aus, und geben Sie dann an der PM> Eingabeaufforderung "enable-migrations" ein.

    Befehl

    (Wenn Sie eine Fehlermeldung erhalten, die besagt, dass der Befehl enable-migrations nicht erkannt wird, geben Sie den Befehl update-package EntityFramework -Reinstall ein, und versuchen Sie es erneut.)

    Dieser Befehl erstellt einen Migrationsordner im Projekt ContosoUniversity.DAL und fügt zwei Dateien in diesen Ordner ein: eine Configuration.cs-Datei , die Sie zum Konfigurieren von Migrationen verwenden können, und eine Datei InitialCreate.cs für die erste Migration, die die Datenbank erstellt.

    Migrationsordner

    Sie haben das DAL-Projekt in der Dropdownliste Standardprojekt der Paket-Manager-Konsole ausgewählt, da der enable-migrations Befehl in dem Projekt ausgeführt werden muss, das die Code First-Kontextklasse enthält. Wenn sich diese Klasse in einem Klassenbibliotheksprojekt befindet, sucht Code First-Migrationen im Startprojekt nach der Datenbankverbindungszeichenfolge für die Projektmappe. In der Projektmappe ContosoUniversity wurde das Webprojekt als Startprojekt festgelegt. Wenn Sie das Projekt mit der Verbindungszeichenfolge nicht als Startprojekt in Visual Studio festlegen möchten, können Sie das Startprojekt im PowerShell-Befehl angeben. Um die Befehlssyntax anzuzeigen, geben Sie den Befehl get-help enable-migrationsein.

    Der enable-migrations Befehl hat die erste Migration automatisch erstellt, da die Datenbank bereits vorhanden ist. Eine Alternative besteht darin, die Datenbank von Migrationen erstellen zu lassen. Verwenden Sie dazu server Explorer oder SQL Server Objekt-Explorer, um die ContosoUniversity-Datenbank zu löschen, bevor Sie Migrationen aktivieren. Nachdem Sie Migrationen aktiviert haben, erstellen Sie die erste Migration manuell, indem Sie den Befehl "add-migration InitialCreate" eingeben. Anschließend können Sie die Datenbank erstellen, indem Sie den Befehl "update-database" eingeben.

Einrichten der Seed-Methode

In diesem Tutorial fügen Sie feste Daten hinzu, indem Sie der -Methode der Seed Code First-Migrationen-Klasse Configuration Code hinzufügen. Code First-Migrationen ruft die Seed -Methode nach jeder Migration auf.

Da die Seed -Methode nach jeder Migration ausgeführt wird, sind nach der ersten Migration bereits Daten in den Tabellen vorhanden. Um diese Situation zu behandeln, verwenden Sie die AddOrUpdate -Methode, um bereits eingefügte Zeilen zu aktualisieren, oder fügen Sie sie ein, wenn sie noch nicht vorhanden sind. Die AddOrUpdate -Methode ist möglicherweise nicht die beste Wahl für Ihr Szenario. Weitere Informationen finden Sie im Blog von Julie Lerman unter Berücksichtigen der EF 4.3 AddOrUpdate-Methode .

  1. Öffnen Sie die Datei Configuration.cs , und ersetzen Sie die Kommentare in der Seed -Methode durch den folgenden Code:

    var instructors = new List<Instructor>
    {   
        new Instructor { FirstMidName = "Kim",     LastName = "Abercrombie", HireDate = DateTime.Parse("1995-03-11"), OfficeAssignment = new OfficeAssignment { Location = "Smith 17" } },
        new Instructor { FirstMidName = "Fadi",    LastName = "Fakhouri",    HireDate = DateTime.Parse("2002-07-06"), OfficeAssignment = new OfficeAssignment { Location = "Gowan 27" } },
        new Instructor { FirstMidName = "Roger",   LastName = "Harui",       HireDate = DateTime.Parse("1998-07-01"), OfficeAssignment = new OfficeAssignment { Location = "Thompson 304" } },
        new Instructor { FirstMidName = "Candace", LastName = "Kapoor",      HireDate = DateTime.Parse("2001-01-15") },
        new Instructor { FirstMidName = "Roger",   LastName = "Zheng",       HireDate = DateTime.Parse("2004-02-12") }
    };
    instructors.ForEach(s => context.Instructors.AddOrUpdate(i => i.LastName, s));
    context.SaveChanges();
    
    var departments = new List<Department>
    {
        new Department { Name = "English",     Budget = 350000, StartDate = DateTime.Parse("2007-09-01"), PersonID = 1 },
        new Department { Name = "Mathematics", Budget = 100000, StartDate = DateTime.Parse("2007-09-01"), PersonID = 2 },
        new Department { Name = "Engineering", Budget = 350000, StartDate = DateTime.Parse("2007-09-01"), PersonID = 3 },
        new Department { Name = "Economics",   Budget = 100000, StartDate = DateTime.Parse("2007-09-01"), PersonID = 4 }
    };
    departments.ForEach(s => context.Departments.AddOrUpdate(d => d.Name, s));
    context.SaveChanges();
    
    var courses = new List<Course>
    {
        new Course { CourseID = 1050, Title = "Chemistry",      Credits = 3, DepartmentID = 3 },
        new Course { CourseID = 4022, Title = "Microeconomics", Credits = 3, DepartmentID = 4 },
        new Course { CourseID = 4041, Title = "Macroeconomics", Credits = 3, DepartmentID = 4 },
        new Course { CourseID = 1045, Title = "Calculus",       Credits = 4, DepartmentID = 2 },
        new Course { CourseID = 3141, Title = "Trigonometry",   Credits = 4, DepartmentID = 2 },
        new Course { CourseID = 2021, Title = "Composition",    Credits = 3, DepartmentID = 1 },
        new Course { CourseID = 2042, Title = "Literature",     Credits = 4, DepartmentID = 1 }
    };
    courses.ForEach(s => context.Courses.AddOrUpdate(s));
    context.SaveChanges();
    
    courses[0].Instructors.Add(instructors[0]);
    courses[0].Instructors.Add(instructors[1]);
    courses[1].Instructors.Add(instructors[2]);
    courses[2].Instructors.Add(instructors[2]);
    courses[3].Instructors.Add(instructors[3]);
    courses[4].Instructors.Add(instructors[3]);
    courses[5].Instructors.Add(instructors[3]);
    courses[6].Instructors.Add(instructors[3]);
    context.SaveChanges();
    
  2. Die Verweise enthalten List rote Wellenlinien darunter, da Sie noch keine -Anweisung für den Namespace haben using . Klicken Sie mit der rechten Maustaste auf eine der Instanzen von List , klicken Sie auf Auflösen, und klicken Sie dann auf System.Collections.Generic verwenden.

    Auflösen mit using-Anweisung

    Diese Menüauswahl fügt den Anweisungen am Anfang der Datei den folgenden Code hinzu using .

    using System.Collections.Generic;
    
  3. Drücken Sie STRG-UMSCHALT-B, um das Projekt zu erstellen.

Das Projekt kann nun die ContosoUniversity-Datenbank bereitstellen. Wenn Sie die Anwendung zum ersten Mal ausführen und zu einer Seite navigieren, die auf die Datenbank zugreift, erstellt Code First die Datenbank und führt diese Seed Methode aus.

Hinweis

Das Hinzufügen von Code zur Seed -Methode ist eine von vielen Möglichkeiten, wie Sie feste Daten in die Datenbank einfügen können. Eine Alternative ist das Hinzufügen von Code zu den Up Methoden und Down jeder Migrationsklasse. Die Up Methoden und Down enthalten Code, der Datenbankänderungen implementiert. Beispiele dafür finden Sie im Tutorial Bereitstellen eines Datenbankupdates .

Sie können auch Code schreiben, der SQL-Anweisungen ausführt, indem Sie die Sql -Methode verwenden. Wenn Sie beispielsweise der Abteilungstabelle eine Spalte Budget hinzufügen und im Rahmen einer Migration alle Abteilungsbudgets auf 1.000,00 US-Dollar initialisieren möchten, können Sie der Methode für diese Migration die Up folgende Codezeile hinzufügen:

Sql("UPDATE Department SET Budget = 1000");

Erstellen von Skripts für die Bereitstellung der Mitgliedschaftsdatenbank

Die Contoso University-Anwendung verwendet das ASP.NET Mitgliedschaftssystem und die Formularauthentifizierung, um Benutzer zu authentifizieren und zu autorisieren. Auf die Seite Guthaben aktualisieren können nur Benutzer mit der Administratorrolle zugreifen.

Führen Sie die Anwendung aus, klicken Sie auf Kurse, und klicken Sie dann auf Guthaben aktualisieren.

Klicken Sie auf Guthaben aktualisieren.

Die Seite Anmelden wird angezeigt, da für die Seite Guthaben aktualisieren Administratorrechte erforderlich sind.

Geben Sie administrator als Benutzernamen und devpwd als Kennwort ein, und klicken Sie auf Anmelden.

Anmeldeseite

Die Seite Guthaben aktualisieren wird angezeigt.

Seite

Benutzer- und Rolleninformationen befinden sich in der Aspnet-ContosoUniversity-Datenbank , die durch die DefaultConnection-Verbindungszeichenfolge in der Web.config-Datei angegeben wird.

Diese Datenbank wird nicht von Entity Framework Code First verwaltet, sodass Sie sie nicht mithilfe von Migrationen bereitstellen können. Sie verwenden den DbDacFx-Anbieter, um das Datenbankschema bereitzustellen, und konfigurieren das Veröffentlichungsprofil so, dass ein Skript ausgeführt wird, das anfängliche Daten in Datenbanktabellen einfügt.

Hinweis

Mit Visual Studio 2013 wurde ein neues ASP.NET-Mitgliedschaftssystem (jetzt mit dem Namen ASP.NET Identity) eingeführt. Das neue System ermöglicht es Ihnen, anwendungs- und mitgliedschaftstabellen in derselben Datenbank zu speichern, und Sie können Code First-Migrationen verwenden, um beide bereitzustellen. Die Beispielanwendung verwendet das frühere ASP.NET Mitgliedschaftssystem, das nicht mithilfe von Code First-Migrationen bereitgestellt werden kann. Die Verfahren zum Bereitstellen dieser Mitgliedschaftsdatenbank gelten auch für jedes andere Szenario, in dem Ihre Anwendung eine SQL Server Datenbank bereitstellen muss, die nicht von Entity Framework Code First erstellt wird.

Auch hier möchten Sie in der Regel nicht die gleichen Daten in der Produktion, die Sie in der Entwicklung haben. Wenn Sie einen Standort zum ersten Mal bereitstellen, ist es üblich, die meisten oder alle Benutzerkonten auszuschließen, die Sie zu Testzwecken erstellen. Daher verfügt das heruntergeladene Projekt über zwei Mitgliedschaftsdatenbanken: aspnet-ContosoUniversity.mdf mit Entwicklungsbenutzern und aspnet-ContosoUniversity-Prod.mdf mit Produktionsbenutzern. Für dieses Tutorial sind die Benutzernamen in beiden Datenbanken identisch: admin und nonadmin. Beide Benutzer verfügen über das Kennwort devpwd in der Entwicklungsdatenbank und prodpwd in der Produktionsdatenbank.

Sie stellen die Entwicklungsbenutzer in der Testumgebung und die Produktionsbenutzer für Staging und Produktion bereit. Dazu erstellen Sie in diesem Tutorial zwei SQL-Skripts, eines für die Entwicklung und eines für die Produktion, und in späteren Tutorials konfigurieren Sie den Veröffentlichungsprozess, um sie auszuführen.

Hinweis

In der Mitgliedschaftsdatenbank wird ein Hash von Kontokennwörtern gespeichert. Um Konten von einem Computer auf einen anderen bereitzustellen, müssen Sie sicherstellen, dass Hashingroutinen nicht andere Hashes auf dem Zielserver generieren als auf dem Quellcomputer. Sie generieren die gleichen Hashes, wenn Sie die ASP.NET-Universelle Anbieter verwenden, solange Sie den Standardalgorithmus nicht ändern. Der Standardalgorithmus ist HMACSHA256 und wird im Validierungsattribut des machineKey-Elements in der Web.config-Datei angegeben.

Sie können Datenbereitstellungsskripts manuell erstellen, indem Sie SQL Server Management Studio (SSMS) oder ein Drittanbietertool verwenden. In diesem restlichen Tutorial erfahren Sie, wie Sie dies in SSMS tun. Wenn Sie SSMS jedoch nicht installieren und verwenden möchten, können Sie die Skripts aus der vollständigen Version des Projekts abrufen und mit dem Abschnitt fortfahren, in dem Sie sie im Projektmappenordner speichern.

Um SSMS zu installieren, installieren Sie es im Download Center: Microsoft SQL Server 2012 Express, indem Sie aufENU\x64\SQLManagementStudio_x64_ENU.exe oder ENU\x86\SQLManagementStudio_x86_ENU.exeklicken. Wenn Sie die falsche Für Ihr System auswählen, kann es nicht installiert werden, und Sie können die andere versuchen.

(Beachten Sie, dass dies ein Download von 600 Megabyte ist. Die Installation kann lange dauern und erfordert einen Neustart Des Computers.)

Klicken Sie auf der ersten Seite des SQL Server Installationscenters auf Neu SQL Server eigenständige Installation, oder fügen Sie einer vorhandenen Installation Features hinzu, und befolgen Sie die Anweisungen, und übernehmen Sie dabei die Standardoptionen.

Erstellen des Entwicklungsdatenbankskripts

  1. Führen Sie SSMS aus.

  2. Geben Sie im Dialogfeld Verbindung mit Server herstellen(localdb)\v11.0 als Servername ein, lassen Sie Authentifizierung auf Windows-Authentifizierung festgelegt, und klicken Sie dann auf Verbinden.

    SSMS–Verbindung mit Server herstellen

  3. Erweitern Sie im Objekt-Explorer Fenster Datenbanken, klicken Sie mit der rechten Maustaste auf aspnet-ContosoUniversity, klicken Sie auf Aufgaben, und klicken Sie dann auf Skripts generieren.

    SSMS– Generieren von Skripts

  4. Klicken Sie im Dialogfeld Skripts generieren und veröffentlichen auf Skriptoptionen festlegen.

    Sie können den Schritt Objekte auswählen überspringen, da der Standardwert Skript für die gesamte Datenbank und alle Datenbankobjekte ist.

  5. Klicken Sie auf Erweitert.

    SSMS-Skriptoptionen

  6. Scrollen Sie im Dialogfeld Erweiterte Skriptoptionen nach unten zu Datentypen für Skripts, und klicken Sie in der Dropdownliste auf die Option Nur Daten .

  7. Ändern Sie skript USE DATABASE in False. USE-Anweisungen sind für Azure SQL Database nicht gültig und werden nicht benötigt, damit die Bereitstellung in der Testumgebung SQL Server Express kann.

    Nur SSMS-Skriptdaten, keine USE-Anweisung

  8. Klicken Sie auf OK.

  9. Im Dialogfeld Skripts generieren und veröffentlichen gibt das Feld Dateiname an, wo das Skript erstellt wird. Ändern Sie den Pfad zu Ihrem Projektmappenordner (dem Ordner mit Der Datei ContosoUniversity.sln) und den Dateinamen in aspnet-data-dev.sql.

  10. Klicken Sie auf Weiter , um zur Registerkarte Zusammenfassung zu wechseln, und klicken Sie dann erneut auf Weiter , um das Skript zu erstellen.

    SSMS-Skript erstellt

  11. Klicken Sie auf Fertig stellen.

Erstellen des Produktionsdatenbankskripts

Da Sie das Projekt noch nicht mit der Produktionsdatenbank ausgeführt haben, ist es noch nicht an die LocalDB-instance angefügt. Daher müssen Sie zuerst die Datenbank anfügen.

  1. Klicken Sie im SSMS-Objekt-Explorer mit der rechten Maustaste auf Datenbanken, und klicken Sie auf Anfügen.

    SSMS Attach

  2. Klicken Sie im Dialogfeld Datenbanken anfügen auf Hinzufügen , und navigieren Sie dann zur Datei aspnet-ContosoUniversity-Prod.mdf im Ordner App_Data .

    SSMS Fügen Sie die anzufügende MDF-Datei hinzu.

  3. Klicken Sie auf OK.

  4. Führen Sie dasselbe Verfahren aus, das Sie zuvor zum Erstellen eines Skripts für die Produktionsdatei verwendet haben. Nennen Sie die Skriptdatei aspnet-data-prod.sql.

Zusammenfassung

Beide Datenbanken können jetzt bereitgestellt werden, und Sie verfügen über zwei Datenbereitstellungsskripts im Lösungsordner.

Datenbereitstellungsskripts

Im folgenden Tutorial konfigurieren Sie Projekteinstellungen, die sich auf die Bereitstellung auswirken, und richten automatische Web.config Dateitransformationen für Einstellungen ein, die in der bereitgestellten Anwendung unterschiedlich sein müssen.

Weitere Informationen

Weitere Informationen zu NuGet finden Sie in der Dokumentation zum Verwalten von Projektbibliotheken mit NuGet und NuGet. Wenn Sie NuGet nicht verwenden möchten, müssen Sie lernen, wie Sie ein NuGet-Paket analysieren, um zu bestimmen, was es bei der Installation tut. (Es kann z. B. Web.config Transformationen konfigurieren, PowerShell-Skripts für die Ausführung zur Buildzeit konfigurieren usw.) Weitere Informationen zur Funktionsweise von NuGet finden Sie unter Erstellen und Veröffentlichen von Paket- und Konfigurationsdatei- und Quellcodetransformationen.