Het is interessant om onderaan uw website een versie weer te geven zoals: v.1.10.2
Waarom een versie onderaan mijn site weergeven?
Als u in uw ontwikkelingen meerdere omgevingen gebruikt, weet u niet meer of de DEV-versie de laatste versie is, of de STAGING (QA) versie de vorige versie is en of we in PRODUCTIE dezelfde versie hebben als in STAGING (QA), daarom is het leuk om onderaan in de footer de laatste versie van uw site weer te geven.
Hoe te doen?
Het is voldoende om in een MVC ASP.Net-project bijvoorbeeld onderaan de pagina _layout.cshtml (normaal in /Views/Shared:_layout.cshtml) dit toe te voegen:
<footer>
<span>Copyright © [MijnSite] 2019 - <!-- versie -->v1.0.0.0<!-- versie --> </span>
</footer>
Ik heb dus dit in mijn footer toegevoegd:
<!-- versie -->v1.0.0.0<!-- versie -->
Vervolgens moet u een VBscript-bestand genaamd "ScriptChangeVersion.vbs" in de root van uw ASP.Net-oplossing maken met de volgende code:
'*** DOOR Dado 08/05/2019
'*** Wijzigt automatisch een tekenreeks in een .aspx of .ascx of .cshtml-bestand bij elke build via Visual Studio
'Neem een of meer argumenten
'Normaal gesproken moeten we minimaal één argument hebben, het pad van het huidige script
'Visual Studio geeft standaard niet de huidige directory: File.GetAbsolutePathName(".") retourneert een lege string
Set oArgs=WScript.Arguments
'Instantie Regex-object voor regel
Set regex = new RegExp
regex.Pattern = "<!-- datum -->[^<]+<!-- datum -->"
regex.IgnoreCase = true
regex.Global = true
'Instantie Regex-object voor versie
Set regexVersion = new RegExp
regexVersion.Pattern = "<!-- versie -->v?\.?([\d]*)\.?([\d]*)\.?([\d]*)\.?([\d]*)<!-- versie -->"
regexVersion.IgnoreCase = true
regexVersion.Global = true
'Dit is het tijdelijke bestand om op te werken
tmpFile = "c:\windows\temp\tempFooter.txt"
'Instantie Object
Set Shell = CreateObject("WScript.Shell")
Set File = CreateObject("Scripting.FileSystemObject")
'Als u dit script handmatig uitvoert, kunt u het pad ophalen, maar niet via Visual Studio
'currentDirectory = File.GetAbsolutePathName(".")
'Krijg het bestand
fileName = oArgs(0) & "Views\Shared\_Layout.cshtml"
'Open dit bestand en maak een nieuw bestand aan
Set CurrentFile = File.OpenTextFile(fileName)
Set OutputFile = File.CreateTextFile(tmpFile,True)
If Not File.FileExists(fileName) Then
Wscript.Echo "Dit bestand is niet gevonden: " & fileName
Return
Else
Wscript.Echo "Bestand gevonden: " & fileName
End If
'Parse elke regel
Do Until CurrentFile.AtEndOfStream
'Lees de regel
strLine = CurrentFile.ReadLine
'Controleer of RegEx het patroon heeft gevonden
If regex.Test(strLine) Then
'Wijzig de regel
strLine = regex.Replace(strLine, "<!-- datum -->(" & Right("0" & Day(Now), 2) & "/"& Right("0" & Month(Now), 2) & "/" & Year(Now)& " "& Right("0" & Hour(Now), 2) & ":"& Right("0" & Minute(Now),2) & ")<!-- datum -->")
'Wijzig de versie
End If
If regexVersion.Test(strLine) Then
'Wijzig versie
version = regexVersion.Execute(strLine)(0).SubMatches(0) '[v.1.0.3]
WScript.Echo "versie gevonden: " & version
maxNumber = regexVersion.Execute(strLine)(0).SubMatches(1)
WScript.Echo "maxNumber gevonden: " & maxNumber
mediumNumber = regexVersion.Execute(strLine)(0).SubMatches(2)
WScript.Echo "mediumNumber gevonden: " & mediumNumber
minorNumber = regexVersion.Execute(strLine)(0).SubMatches(3)
WScript.Echo "minorNumber gevonden: " & minorNumber
If version = "" Then
version = 1
End If
If maxNumber = "" Then
maxNumber = 0
End If
If mediumNumber = "" Then
mediumNumber = 0
End If
If minorNumber = "" Then
minorNumber = 0
End If
minorNumber = minorNumber + 1
if minorNumber = 100 Then
minorNumber = 0
mediumNumber = mediumNumber + 1
if mediumNumber = 100 Then
mediumNumber = 0
maxNumber = maxNumber + 1
If maxNumber = 100 Then
maxNumber = 0
version = version + 1
End if
End If
End If
newVersion = "<!-- versie -->v." & version & "." & maxNumber & "." & mediumNumber & "." & minorNumber & "<!-- versie -->"
WScript.Echo "Wijzig versie naar : " & newVersion
strLine = regexVersion.Replace(strLine, newVersion)
End If
'Schrijf de regel
'WScript.Echo strLine
OutputFile.Write(strLine & vbCrLf)
Loop
'Sluit alles
OutputFile.Close
CurrentFile.Close
'Verwijder het originele bestand
File.DeleteFile(fileName)
'Hernoem het tijdelijke bestand
File.MoveFile tmpFile,fileName
'KRIJG Volledige controle toestemming op dit bestand
Shell.Run "cacls " & fileName & " /E /T /C /G ""Iedereen"":F ", 2, True
Dit script, eenmaal uitgevoerd, zal de pagina _layout.cshtml laden, zoeken waar de versie is aangegeven tussen de tags <!-- versie --> en alles opslaan!
Om dit nu automatisch te maken, moet u in uw ASP.Net-oplossing een POST BUILD-evenement (na de build van uw oplossing) creëren zoals dit:

U plaatst de volgende regel:
if "$(ConfigurationName)" == "Debug" cscript /nologo $(SolutionDir)ScriptChangeVersion.vbs "$(ProjectDir)"
Elke keer dat u een build van uw oplossing in DEBUG-modus maakt, zal het .vbs-script worden uitgevoerd en de versie van uw pagina in de footer wijzigen.
Uw versie zal automatisch toenemen, zoals dit:
v1.0.0.0
v1.0.0.1
v1.0.0.2
...
v1.0.0.99
v1.0.1.0
v1.0.1.1
...
v1.0.99.99
v1.1.0.0
...
v1.99.99.99
v2.0.0.0
Daar gaat u! Het is nu aan u om enkele wijzigingen in het script aan te brengen als u dat wilt.
Ik heb ook de mogelijkheid toegevoegd in het script om de datum van de build weer te geven, u hoeft alleen maar de tags <!-- date --> ... <!-- date --> ergens in uw pagina toe te voegen.
Aucun commentaire pour le moment.