ASP.NET webimplementatie met Visual Studio: Opdrachtregelimplementatie

door Tom Dykstra

Startersproject downloaden

Deze reeks zelfstudies laat zien hoe u een ASP.NET-webtoepassing implementeert (publiceert) naar Azure App Service Web Apps of naar een externe hostingprovider met behulp van Visual Studio 2012 of Visual Studio 2010. Zie de eerste zelfstudie in de reeks voor meer informatie over de reeks.

Overzicht

In deze handleiding leert u hoe u de Visual Studio web publiceer-pijplijn via de opdrachtregel aanroept. Dit is handig voor scenario's waarin u het implementatieproces wilt automatiseren in plaats van dit handmatig te doen in Visual Studio, meestal met behulp van een broncodebeheersysteem.

Een wijziging aanbrengen om te implementeren

Op dit moment wordt op de pagina Info de sjablooncode weergegeven.

Over-pagina met sjablooncode

U vervangt dit door code die een samenvatting van de inschrijving van leerlingen/studenten weergeeft.

Open de pagina About.aspx , verwijder alle markeringen in het MainContentContent element en voeg de volgende markeringen toe:

<h2>Student Body Statistics</h2>
    <asp:ObjectDataSource ID="StudentStatisticsObjectDataSource" runat="server" TypeName="ContosoUniversity.BLL.SchoolBL"
        SelectMethod="GetStudentStatistics" DataObjectTypeName="ContosoUniversity.DAL.EnrollmentDateGroup">
    </asp:ObjectDataSource>
    <asp:GridView ID="StudentStatisticsGridView" runat="server" AutoGenerateColumns="False"
        DataSourceID="StudentStatisticsObjectDataSource">
        <Columns>
            <asp:BoundField DataField="EnrollmentDate" DataFormatString="{0:d}" HeaderText="Date of Enrollment"
                ReadOnly="True" SortExpression="EnrollmentDate" />
            <asp:BoundField DataField="StudentCount" HeaderText="Students" ReadOnly="True"
                SortExpression="StudentCount" />
        </Columns>
    </asp:GridView>

Voer het project uit en selecteer de pagina Info .

Info over pagina

Uitrollen naar een testomgeving met behulp van de commandoregel

U implementeert geen andere databasewijziging, dus schakel dbDacFx-database-implementatie uit voor de aspnet-ContosoUniversity-database. Open de wizard Web publiceren en schakel in elk van de drie publicatieprofielen het selectievakje Database bijwerken uit op het tabblad Instellingen .

Zoek op de startpagina van Windows 8 naar de opdrachtprompt voor ontwikkelaars voor VS2012.

Klik met de rechtermuisknop op het pictogram voor de opdrachtprompt voor ontwikkelaars voor VS2012 en klik op Uitvoeren als administrator.

Voer de volgende opdracht in op de commandoregel en vervang het pad naar het oplossingsbestand door het pad naar uw eigen oplossingsbestand.

msbuild C:\ContosoUniversity\ContosoUniversity.sln /p:DeployOnBuild=true /p:PublishProfile=Test

MSBuild bouwt de oplossing en implementeert deze in de testomgeving.

Uitvoer van opdrachtregel

Open een browser en ga naar http://localhost/ContosoUniversityen klik vervolgens op de pagina Info om te controleren of de implementatie is geslaagd.

Als u geen studenten hebt aangemaakt in de test, ziet u onder de kop Statistieken van de Studentengroep een lege pagina. Ga naar de pagina Leerlingen/studenten , klik op Leerling/student toevoegen en voeg enkele leerlingen/studenten toe en ga terug naar de pagina Over om studentstatistieken weer te geven.

Schermopname die de statistieken van het studentenbestand op de infopagina toont.

Belangrijkste opdrachtregelopties

De opdracht die u hebt ingevoerd, heeft het pad naar het oplossingsbestand en twee eigenschappen doorgegeven aan MSBuild:

msbuild C:\ContosoUniversity\ContosoUniversity.sln /p:DeployOnBuild=true 
/p:PublishProfile=Test

De oplossing implementeren versus afzonderlijke projecten implementeren

Als u het oplossingsbestand opgeeft, worden alle projecten in de oplossing gebouwd. Als u meerdere webprojecten in de oplossing hebt, is het volgende MSBuild-gedrag van toepassing:

  • De eigenschappen die u opgeeft op de opdrachtregel, worden doorgegeven aan elk project. Daarom moet elk webproject een publicatieprofiel hebben met de naam die u opgeeft. Als u opgeeft /p:PublishProfile=Test, moet elk webproject een publicatieprofiel hebben met de naam Test.
  • U kunt het ene project met succes publiceren, terwijl een ander project niet eens gebouwd kan worden. Zie voor meer informatie de stackoverflow thread MSBuild mislukt met twee pakketten.

Als u een afzonderlijk project opgeeft in plaats van een oplossing, moet u een parameter toevoegen waarmee de Visual Studio-versie wordt opgegeven. Als u Visual Studio 2012 gebruikt, lijkt de opdrachtregel op het volgende voorbeeld:

msbuild C:\ContosoUniversity\ContosoUniversity\ContosoUniversity.csproj /p:DeployOnBuild=true /p:PublishProfile=Test /p:VisualStudioVersion=11.0

Het versienummer voor Visual Studio 2010 is 10.0. Zie visual Studio-projectcompatibiliteit en VisualStudioVersion op de blog van Sayed Hashimi voor meer informatie.

Het publicatieprofiel opgeven

U kunt het publicatieprofiel op naam of op het volledige pad naar het .pubxml-bestand opgeven, zoals wordt weergegeven in het volgende voorbeeld:

msbuild C:\ContosoUniversity\ContosoUniversity.sln /p:DeployOnBuild=true /p:PublishProfile=C:\ContosoUniversity\ContosoUniversity\Properties\PublishProfiles\Test.pubxml

Webpublicatiemethoden die worden ondersteund voor het publiceren vanuit de opdrachtregel

Er worden drie publicatiemethoden ondersteund voor publiceren via de commandoregel:

  • MSDeploy - Publiceren met behulp van Web Deploy.
  • Package - Publiceren door een Web Deploy-pakket te maken. U moet het pakket afzonderlijk installeren van de MSBuild-opdracht waarmee het wordt gemaakt.
  • FileSystem - Publiceren door bestanden naar een opgegeven map te kopiëren.

De buildconfiguratie en het platform opgeven

De build-configuratie en het platform moeten worden ingesteld in Visual Studio of op de opdrachtregel. De publicatieprofielen bevatten eigenschappen met de naam LastUsedBuildConfiguration en LastUsedPlatform, maar u kunt deze eigenschappen niet instellen om te bepalen hoe het project wordt gebouwd. Zie MSBuild voor meer informatie: hoe u de configuratie-eigenschap instelt op de blog van Sayed Hashimi.

Overzicht

U hebt nu een toepassingsupdate geïmplementeerd met behulp van de opdrachtregel.

Schermopname van de Over-pagina die de studentenstatistieken toont.

In de volgende tutorial ziet u een voorbeeld van het uitbreiden van de webpublicatiepijplijn. In het voorbeeld ziet u hoe u bestanden implementeert die niet zijn opgenomen in het project.