0

Ich möchte die "Web Deploy" -Methode ausprobieren, um unsere Website bereitzustellen. Vor meinen Fragen, würde Ich mag ein paar Details über die aktuellen Einsatz Verfahren zur Verfügung zu stellen:Web Deploy - So erstellen Sie ein Paket mit ausgewählten Elementen

  1. Es ist ein Unternehmen Website & wird auf mehreren Servern (mit kontinuierlicher Bereitstellung) gehostet.

  2. Die Dateien befinden sich nicht im 'Freigabe' Modus, sondern im 'Debug' Modus.

  3. Wir kopieren manuell nur die aktuellen Zuordnung bezogenen Dateien. Sag mal, in dieser Woche ist die Konten Modul eingesetzt werden, dann werden die Dateien bereitgestellt werden sollen
    /mysite/App_Code/Modelle/accounts.cs
    /mysite/pages/accounts.aspx, Konten .aspx.cs

    Die 3 Dateien werden manuell in die entsprechenden Ordner auf allen Servern kopiert. Dies ist seit Jahren das Verfahren.

  4. Das Projekt 'mysite' ist eine 'ASP.NET-Website' und nicht 'ASP.NET Web Application' (in VS2013), was bedeutet, diese Optionen nicht verfügbar sind - Verpackung/Web & Paket Publish/Veröffentlichen SQL

ich habe die Pakete im dev-System erstellt,
(i) die Option veröffentlicht mit (Web-Deployment-Paket) in Visual Studio und auch
(ii) Export Anwendung in IIS (gibt die Möglichkeit, die Dateien auszuwählen)

  1. Ist es möglich, ein Paket nur für die Dateien zu erstellen, die ich benötige (in diesem Fall accounts.cs, accounts.aspx, accounts.aspx.cs), mithilfe der VS-Veröffentlichungsfunktion.
  2. Ist es möglich, benutzerdefinierte SQL-Scripts-Datei in das Paket aufzunehmen. (mit IIS oder VS)
  3. Wenn die Antwort ein Ja für Q2 ist, sollte es nur einmal ausgeführt werden, nicht für alle Server. Weil es nur einen DB-Server gibt. Wie kann es gemacht werden?

Ich ging noch nicht für die Installation Paketteil.

Antwort

1

1 - nicht durch VS, weil es keinen Erweiterungspunkt gibt (den ich kenne) in MSBuild für Websites. Sayed hat a great post, die beschreibt, wie Websites anders als Apps behandelt werden.

Alternative - Sie könnten die Dateien, die Sie bereitstellen möchten, in einen neuen Ordner kopieren und dann mit dem MSDeploy.exe-Befehlszeilentool ein MSDeploy-Kundenpaket erstellen, das Sie auf Ihrem Server bereitstellen können.

D:\temp>"C:\Program Files (x86)\IIS\Microsoft Web Deploy V3\msdeploy.exe" -verb:sync -source:contentPath=%cd%\DefaultWebSite\website1 -dest:package=DefaultWebSite.zip 
Info: Updating MSDeploy.contentPath (MSDeploy.contentPath). 
Info: Adding virtual path (D:\temp\DefaultWebSite\website1) 
Info: Adding directory (D:\temp\DefaultWebSite\website1). 
Total changes: 3 (2 added, 0 deleted, 1 updated, 0 parameters changed, 0 bytes c 
opied) 

D:\temp>"C:\Program Files (x86)\IIS\Microsoft Web Deploy V3\msdeploy.exe" -verb:sync -source:package=DefaultWebSite.zip -dest:contentPath="Default Web Site\website2" 
Info: Adding MSDeploy.contentPath (MSDeploy.contentPath). 
Info: Adding virtual path (Default Web Site\website2) 
Info: Adding directory (Default Web Site\website2). 
Info: Adding file (Default Web Site\website2\Default.aspx). 
Info: Adding file (Default Web Site\website2\Default.aspx.cs). 
Info: Adding file (Default Web Site\website2\Web.config). 
Total changes: 6 (6 added, 0 deleted, 0 updated, 0 parameters changed, 971 bytes 
copied) 

2/3 - Ja, Sie SQL in die Web-Bereitstellungspaket enthalten könnte, aber es wäre jedes Mal bereitstellen das Paket bereitgestellt wird. Wir haben es besser gefunden, unsere SQL-Bereitstellungen in ein eigenes Paket zu trennen, sodass wir sie nur dann bereitstellen können, wenn wir das möchten.Dieser Beitrag beschreibt, wie wir mit unseren SQL-Implementierungen umgehen - https://dotnetcatch.com/2016/02/10/deploying-a-database-project-with-msdeploy/

Verwandte Themen