如果是网站暴露dll的最新发布时间,例如你可以写一个ashxusing System; using System.IO; using System.Linq; using System.Web;namespace YourNamespace { /// <summary> /// 返回网站dll最新更新时间,方便维护、调试网站。 /// </summary> public class LatestPublished : IHttpHandler { public void ProcessRequest(HttpContext context) { context.Response.ContentType = "text/plain"; var dir = new DirectoryInfo(context.Server.MapPath("~/bin")); DateTime result = 最新发布时间(dir); context.Response.Write(result.ToString("yyyy-M-d H:m:s")); } private DateTime 最新发布时间(DirectoryInfo directoryInfo) { return (from f in directoryInfo.EnumerateFiles() let t = f.LastWriteTime select t).Max(); } public bool IsReusable { get { return false; } } } }这样,通过一个简单的http url就可以下载到网站最新更新时间。至于说自动获取并内容,这肯定不是asp.net自己可以做到的。你可能需要一个windows service小程序去查询网站最新更新时间,下载每一个文件,替换每一个文件。实际上,自动更新网站,是比较危险的。这并不是像每一个人自己去更新自己的某个桌面程序那样可以分散风险。因此如果是我,也顶多会写一个程序去扫描一遍我的所有网站,或者让给每一个网站的进程启动时给我的电子邮箱里发送一个邮件,仅此而已。至于网站更新,应该谨慎考虑。
http://xxx/xx.exe,必须先下载才能得到版本号。
不过你可以在IIS上部署一个网站,在服务器上得到文件版本,并且返回给客户端,客户端再判断是否需要下载。
软件读取xml,决定是否需要更新。
using System.IO;
using System.Linq;
using System.Web;namespace YourNamespace
{
/// <summary>
/// 返回网站dll最新更新时间,方便维护、调试网站。
/// </summary>
public class LatestPublished : IHttpHandler
{ public void ProcessRequest(HttpContext context)
{
context.Response.ContentType = "text/plain";
var dir = new DirectoryInfo(context.Server.MapPath("~/bin"));
DateTime result = 最新发布时间(dir);
context.Response.Write(result.ToString("yyyy-M-d H:m:s"));
} private DateTime 最新发布时间(DirectoryInfo directoryInfo)
{
return (from f in directoryInfo.EnumerateFiles()
let t = f.LastWriteTime
select t).Max();
} public bool IsReusable
{
get
{
return false;
}
}
}
}这样,通过一个简单的http url就可以下载到网站最新更新时间。至于说自动获取并内容,这肯定不是asp.net自己可以做到的。你可能需要一个windows service小程序去查询网站最新更新时间,下载每一个文件,替换每一个文件。实际上,自动更新网站,是比较危险的。这并不是像每一个人自己去更新自己的某个桌面程序那样可以分散风险。因此如果是我,也顶多会写一个程序去扫描一遍我的所有网站,或者让给每一个网站的进程启动时给我的电子邮箱里发送一个邮件,仅此而已。至于网站更新,应该谨慎考虑。
不是告诉你了么?在服务器上得到文件版本。谁让你在客户端上调用的。