ASP.NET webbdistribution med hjälp av Visual Studio: Distribution av kommandorad

av Tom Dykstra

Ladda ned Startprojekt

Den här självstudieserien visar hur du distribuerar (publicerar) en ASP.NET webbapp till Azure App Service Web Apps eller till en tredjepartsvärdleverantör med hjälp av Visual Studio 2012 eller Visual Studio 2010. Information om serien finns i den första självstudien i serien.

Översikt

Den här handledningen visar hur du anropar webbpubliceringspipeline i Visual Studio från kommandoraden. Detta är användbart för scenarier där du vill automatisera distributionsprocessen i stället för att göra det manuellt i Visual Studio, vanligtvis med hjälp av ett system för källkodsversionskontroll.

Gör en ändring för att distribuera

Sidan Om visar för närvarande mallkoden.

Om sida med mallkod

Du ersätter det med kod som visar en sammanfattning av studentregistreringen.

Öppna sidan About.aspx , ta bort alla markeringar i elementet MainContentContent och infoga följande markering i dess ställe:

<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>

Kör projektet och välj sidan Om .

Om sida

Utför distribution till test med hjälp av kommandoraden

Du kommer inte att distribuera någon annan databasändring, så inaktivera dbDacFx-databasdistributionen för databasen aspnet-ContosoUniversity. Öppna guiden Publicera webb och avmarkera kryssrutan Uppdatera databas på fliken Inställningar i var och en av de tre publiceringsprofilerna.

På startsidan för Windows 8, sök efter Utvecklarkommando-prompt för VS2012.

Högerklicka på ikonen för Kommandotolken för utvecklare för VS2012 och klicka på Kör som administratör.

Ange följande kommando i kommandotolken och ersätt sökvägen till lösningsfilen med sökvägen till din lösningsfil:

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

MSBuild skapar lösningen och distribuerar den till testmiljön.

Utskrift från kommandoraden

Öppna en webbläsare och gå till http://localhost/ContosoUniversityoch klicka sedan på sidan Om för att kontrollera att distributionen lyckades.

Om du inte har skapat några studenter för testning visas en tom sida under rubriken Studentstatistik. Gå till sidan Studenter , klicka på Lägg till student och lägg till några elever och gå sedan tillbaka till sidan Om för att se elevstatistik.

Skärmbild som visar studentstatistik på om-sidan.

Alternativ för nyckelkommandorad

Kommandot som du angav skickade sökvägen till lösningsfilen och två egenskaper till MSBuild:

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

Distribuera lösningen jämfört med att distribuera enskilda projekt

Om du anger lösningsfilen skapas alla projekt i lösningen. Om du har flera webbprojekt i lösningen gäller följande MSBuild-beteende:

  • De egenskaper som du anger på kommandoraden skickas till varje projekt. Därför måste varje webbprojekt ha en publiceringsprofil med det namn som du anger. Om du anger /p:PublishProfile=Testmåste varje webbprojekt ha en publiceringsprofil med namnet Test.
  • Du kan lyckas publicera ett projekt trots att ett annat inte ens byggs. Mer information finns i stackoverflow-tråden MSBuild misslyckas med två paket.

Om du anger ett enskilt projekt i stället för en lösning måste du lägga till en parameter som anger Visual Studio-versionen. Om du använder Visual Studio 2012 skulle kommandoraden likna följande exempel:

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

Versionsnumret för Visual Studio 2010 är 10.0. Mer information finns i Visual Studio-projektkompatibilitet och VisualStudioVersion på Sayed Hashimis blogg.

Ange publiceringsprofilen

Du kan ange publiceringsprofilen efter namn eller genom den fullständiga sökvägen till .pubxml-filen , som du ser i följande exempel:

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

Webbpubliceringsmetoder som stöds för kommandoradspublicering

Tre publiceringsmetoder stöds för kommandoradspublicering:

  • MSDeploy – Publicera med hjälp av Web Deploy.
  • Package – Publicera genom att skapa ett webbdistributionspaket. Du måste installera paketet separat från MSBuild-kommandot som skapar det.
  • FileSystem – Publicera genom att kopiera filer till en angiven mapp.

Ange byggkonfigurationen och plattformen

Byggkonfigurationen och plattformen måste anges i Visual Studio eller på kommandoraden. Publiceringsprofilerna innehåller egenskaper som heter LastUsedBuildConfiguration och LastUsedPlatform, men du kan inte ange dessa egenskaper för att avgöra hur projektet skapas. För mer information, se MSBuild: How to set the configuration property på Sayed Hashimis blogg.

Sammanfattning

Nu har du distribuerat en programuppdatering med hjälp av kommandoraden.

Skärmbild som visar sidan Om med statistik över elevkåren.

I nästa handledning kommer du att se ett exempel på hur du kan utöka webbpubliceringspipen. Exemplet visar hur du distribuerar filer som inte ingår i projektet.