Aquí está mi solución rápida que rastrea su sitio web local para archivos .aspx y genera archivos .html junto a html.
protected void ButtonGenerate_Click(object sender, EventArgs e)
{
RecursivelyGenerateHtmlFiles(Server.MapPath("~/"), new DirectoryInfo(Server.MapPath("~/")));
}
private void RecursivelyGenerateHtmlFiles(string root, DirectoryInfo folder)
{
foreach (var aspxPage in folder.GetFiles("*.aspx"))
{
var destination = aspxPage.FullName.Substring(0, aspxPage.FullName.Length - 4) + "html";
if (File.Exists(destination))
File.Delete(destination);
var url = "http://" + Request.Url.Authority + "/" + aspxPage.FullName.Replace(root, "");
var request = HttpWebRequest.Create(url);
File.WriteAllText(destination, new StreamReader(request.GetResponse().GetResponseStream()).ReadToEnd());
}
foreach (var subDirectory in folder.GetDirectories())
{
RecursivelyGenerateHtmlFiles(root, subDirectory);
}
}
Funcionó para mí.
Además, puede editar un archivo .bat para generar una carpeta con todos los archivos .html de su sitio. Esto es útil al dar una copia plana creativa.
set folder="Generated"
cd /d %folder%
for /F "delims=" %%i in ('dir /b') do (rmdir "%%i" /s/q || del "%%i" /s/q)
cd /d ..
xcopy /r /d /i /s /y /exclude:exclude.txt PAHtml Generated
Aquí está la exclusión.txt file para usar
.dll
.cs\
.aspx
.pdb
.csproj
.user
.vspscc
.config
¡Una pregunta muy interesante! – User
Me alegra que hayas editado el título. Pensé que "debería haber puesto" en las páginas HTML '' justo después de publicar :) – joshcomley
Aclaré el título para usted. – Soviut