25Aug

Så här skapar du automatiskt säkerhetskopior i Visual Studio

Om du är ett utvecklingsteam för en man, har du förmodligen inte ett behov av ett fullständigt kontrollerat system, men det är utan tvekan viktigt att skapa källkodsbackupar för varje utgåva.

Genom att utnyttja kraften i post-build-händelser och ett enkelt batch-skript, kan du enkelt lägga till möjligheten att få Visual Studio automatiskt att skapa en källkodssäkerhet för varje version av uppbyggnadskoden.

Så fungerar det

Vår lösning är enkel: När en framgångsrik byggnads händelse inträffar, har vi en batch script run som skapar ett komprimerat arkiv( eventuellt taggad och tidsstämplad) av alla filer i respektive Visual Studio projektmapp.

Det är det. Allt du behöver göra är att följa stegen nedan.

Konfigurera automatiska säkerhetskopior

Först måste du hämta och extrahera batch scriptfilen från länken längst ner i artikeln. Dessutom behöver du kommandoradsverktyget 7-Zip( det här ingår i en fullständig version av Project Build Backup-skriptet, eller du kan ladda ner det separat).I vårt exempel extraherade vi dessa filer till katalogen "C: \ Tools", men någon plats kommer att fungera.

Öppna dina Visual Studio Project egenskaper genom att dubbelklicka på My Project under respektive projekt.

I projektegenskaperna, gå till Kompilera sektionen.

Klicka på knappen Bygg händelser längst ner till höger.

I vårt fall vill vi göra en säkerhetskopia efter en framgångsrik kompilera åtgärd. Se till att du har möjlighet att köra postbyggnadsevenemanget "På framgångsrik byggnad" och klicka sedan på knappen Redigera efterbyggnad.

Kommandot nedan skapar en build-backup endast för kompilering av Release-konfigurationen( detta är vad IF-villkoret kontrollerar) som vi realistiskt inte vill säkerhetskopiera varje Debug / Test-byggnad. Dessutom kommer den aktuella tidstämpeln att läggas till( / D-omkopplare) med backupfilen i 7z-filformat( / 7z) i motsats till zip. Genom att lägga till / T "$( ConfigurationName)" som en parameter lägger vi till byggtypen( Release i detta fall) till namnet på säkerhetskopieringsfilen.

IF "$( ConfigurationName)" == "Släpp" CALL C: \ Tools \ ProjectBuildBackup.bat "$( SolutionDir)" "$( ProjectDir)" "$( ProjectName)" / T "$( ConfigurationName)" / D/ 7z

Med Macros-knappen kan du ha Visual Studio-förfyllningsprojektspecifik information så att ingen hårdkodning krävs. Du kan justera det här kommandot efter behov( speciellt platsen för batchfilen), men de tre första parametrarna behöver inte ändras.

Det är viktigt att komma ihåg att operationer efter händelsen körs oavsett vilken projektkonfiguration som valts. Det är därför vi behöver lägga till IF "$( ConfigurationName)" == "Release" -översikten - annars skulle säkerhetskopieringsåtgärden inträffa på varje framgångsrik bygghändelse.

När du har avslutat ditt kommando och tillämpat det, bör kommandosträngen visas i avsnittet Post-build events.

Observera att medan "CALL" -kommandot inte är tekniskt nödvändigt, rekommenderas det, som om detta utelämnas, eventuella händelser som läggs till efter det här får inte utföras.

Nu när du kör kompilera / bygga med ditt projekt i Utlösningskonfigurationen ser du utmatningen från säkerhetskopieringsoperationen.

[...]

Varje framgångsrik Release build skapar ett nytt tidsstämplat arkiv med lösningsmappen i en underkatalog, "Builds"( som kan anpassas med / O-omkopplaren om det behövs).

Innehållet i varje backup är det fulla Visual Studio-projektet - källfiler, konfigurationsinställningar, sammanställda binärer och allt - vilket gör det till en sann punkt i säkerhetskopiering.

Inte en ersättning för ett fullständigt versionsstyrningssystem

I slutändan vill vi bara upprepa att det här verktyget inte är avsett att ersätta ett fullstyrt styrsystem. Det är helt enkelt ett användbart verktyg för utvecklare att skapa ögonblicksbilder av projektets källkod efter varje sammanställning.

Om du någonsin måste gå tillbaka och granska en tidigare version, ha en färdig att använda( bara extrahera till en ny katalog) projektfilen för en tidpunkts samling kan verkligen komma till nytta.

Länkar

Hämta Project Build Backup Script

Hämta 7-Zip Command Line Tool( Obs! 7za-verktyget är också buntat med en nedladdning från Project Build Backup-skriptet)