Es interesante mostrar en la parte inferior de su sitio web, una versión como: v.1.10.2
¿Por qué mostrar una versión en la parte inferior de mi sitio?
Si utiliza en sus desarrollos varios entornos, no sabe si la versión de DEV es la última versión, si la versión STAGING (QA) es la versión anterior y si en PRODUCTION tenemos la misma versión que en STAGING (QA), por lo tanto, es útil mostrar en el pie de página la última versión de su sitio.
¿Cómo hacerlo?
Solo necesita un proyecto MVC ASP.Net, por ejemplo, agregar al final de la página _layout.cshtml (normalmente en /Views/Shared:_layout.cshtml) esto:
<footer>
<span>Copyright © [MiSitio] 2019 - <!-- version -->v1.0.0.0<!-- version --> </span>
</footer>
He agregado esto en mi pie de página:
<!-- version -->v1.0.0.0<!-- version -->
Luego, debe crear un archivo VBscript llamado "ScriptChangeVersion.vbs" en la raíz de su solución ASP.Net con el siguiente código:
'*** BY Dado 08/05/2019
'*** Cambia automáticamente una cadena en un archivo .aspx o .ascx o .cshtml en cada compilación a través de Visual Studio
'Toma uno o más argumentos
'Normalmente debemos tener al menos un argumento, la ruta del script actual
'Visual Studio no proporciona por defecto el Directorio Actual: File.GetAbsolutePathName(".") devuelve cadena vacía
Set oArgs=WScript.Arguments
'Instancia objeto Regex para la línea
Set regex = new RegExp
regex.Pattern = "<!-- date -->[^<]+<!-- date -->"
regex.IgnoreCase = true
regex.Global = true
'Instancia objeto Regex para la versión
Set regexVersion = new RegExp
regexVersion.Pattern = "<!-- version -->v?\.?([\d]*)\.?([\d]*)\.?([\d]*)\.?([\d]*)<!-- version -->"
regexVersion.IgnoreCase = true
regexVersion.Global = true
'Este es el archivo temporal para trabajar en él
tmpFile = "c:\windows\temp\tempFooter.txt"
'Instancia Objeto
Set Shell = CreateObject("WScript.Shell")
Set File = CreateObject("Scripting.FileSystemObject")
'Si ejecuta este script manualmente, puede recuperar la ruta, pero no a través de Visual Studio
'currentDirectory = File.GetAbsolutePathName(".")
'Obtiene el archivo
fileName = oArgs(0) & "Views\Shared\_Layout.cshtml"
'Abrir este archivo y crear uno nuevo
Set CurrentFile = File.OpenTextFile(fileName)
Set OutputFile = File.CreateTextFile(tmpFile,True)
If Not File.FileExists(fileName) Then
Wscript.Echo "Este archivo no se encuentra: " & fileName
Return
Else
Wscript.Echo "Archivo encontrado: " & fileName
End If
'Analiza cada línea
Do Until CurrentFile.AtEndOfStream
'Leer la línea
strLine = CurrentFile.ReadLine
'Verificar si RegEx encontró el patrón
If regex.Test(strLine) Then
'Cambiar la línea
strLine = regex.Replace(strLine, "<!-- date -->(" & Right("0" & Day(Now), 2) & "/"& Right("0" & Month(Now), 2) & "/" & Year(Now)& " "& Right("0" & Hour(Now), 2) & ":"& Right("0" & Minute(Now),2) & ")<!-- date -->")
'Cambiar la versión
End If
If regexVersion.Test(strLine) Then
'Cambiar versión
version = regexVersion.Execute(strLine)(0).SubMatches(0) '[v.1.0.3]
WScript.Echo "versión encontrada: " & version
maxNumber = regexVersion.Execute(strLine)(0).SubMatches(1)
WScript.Echo "maxNumber encontrado: " & maxNumber
mediumNumber = regexVersion.Execute(strLine)(0).SubMatches(2)
WScript.Echo "mediumNumber encontrado: " & mediumNumber
minorNumber = regexVersion.Execute(strLine)(0).SubMatches(3)
WScript.Echo "minorNumber encontrado: " & 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 = "<!-- version -->v." & version & "." & maxNumber & "." & mediumNumber & "." & minorNumber & "<!-- version -->"
WScript.Echo "Cambiar versión a: " & newVersion
strLine = regexVersion.Replace(strLine, newVersion)
End If
'Escribir la línea
'WScript.Echo strLine
OutputFile.Write(strLine & vbCrLf)
Loop
'Cierra todo
OutputFile.Close
CurrentFile.Close
'Eliminar el archivo original
File.DeleteFile(fileName)
'Renombrar el archivo temporal
File.MoveFile tmpFile,fileName
'OBTENER permiso de Control Total en este archivo
Shell.Run "cacls " & fileName & " /E /T /C /G ""Everyone"":F ", 2, True
Este script, una vez ejecutado, cargará la página _layout.cshtml, buscará dónde se encuentra la versión indicada entre las etiquetas <!-- version --> y ¡guardará todo!
Para automatizar todo esto ahora, debe crear un evento POST BUILD en su solución ASP.Net (después de la compilación de su solución) así:

Coloque la siguiente línea:
if "$(ConfigurationName)" == "Debug" cscript /nologo $(SolutionDir)ScriptChangeVersion.vbs "$(ProjectDir)"
Cada vez que realice un build de su solución en modo DEBUG, el script .vbs se ejecutará y cambiará la versión de su página en el pie de página.
Su versión se incrementará automáticamente, así:
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
¡Aquí está! Ahora le toca a usted hacer algunos cambios en el script si lo desea.
También he agregado en el script la posibilidad de poner la fecha del build, solo necesita agregar las etiquetas <!-- date --> ... <!-- date --> en algún lugar de su página.
Aucun commentaire pour le moment.