我的程序我做主
~天~注~定~
posts - 5,comments - 44,trackbacks - 0

最新评论

哦不好意思,EsGridColumn是我自己封装了一下的对象 你应该用Dev的叫GridColumn
EsGridColumn col = new EsGridColumn(); 这句我找不到类型或者引用,请问这个需要哪种引用呢?
自动更新,看似简单,但看天空软件,95%以上的软件,都作的不好。 什么原因呢,简单的事情作好,不容易。 给你推荐一个吧,QUpdater
Re:不用ClickOnce,做我们个性的自动更新功能 飞的更高2011 2010-10-12 14:20  
最近也在做这个,可不可以发份给我,lykang2008@126.com,谢了。
已拜读大作,最近也在做自动更新的功能,希望楼主闲暇之余能发份DEMO给我,在此不胜感激93888728@qq.com
@王学军 楼主 可不可以给我搞一份 boerruan@126.com
伟大的LZ,发一份demo给我吧,我急需要~
e-mail:huyibing1985@163.com
最近在剛好需要使用ClickOnce功能, 可是有些想做的ClickOnce又不提供, 研究樓主提供的程式碼, 可能資質不夠, 不是很懂!!
能否寄一份可執行的程式碼, 讓我參考呢? 謝謝! ^_^

mail: shenbb@pchome.com.tw
写的不错送给俺一份吧dongchaozhou@sina.com或zdc2000@msn.com
写的真不错! 请发一份给我了: shi5588 $ gmail.com 谢谢!
你的例子我看了,基本通过了,但是在下载文件的时候出了些问题。请你发一份Demo代码给我吧! 谢谢 对了如果有好的加密算法也顺道发一下吧!最近在搞这方面的东西,数学不好很头痛啊!
Master_t@163.com
HI,楼主你好!麻烦发一分实例给我,谢谢!
Longsea168@163.com
楼主 我急需做这样一个自动更新功能的程序 找到这里来了
能不能发给我一份代码例子给我 大恩大德不胜感激
我的邮箱是feiyvefanli@gmail.com
楼主,我也是新手,发一份完整的演示例子给我吧,谢谢!邮箱:guanxinye@163.com
可以发份源码例子吗,新手上路走不稳,帮忙一下啰,我的邮箱tatarlxw@163.com
学习中,能否也发份给我学习下~shenfengxian@163.com
你现在也在用dev的控件吗,我也是devexpress的使用者,希望可以共同学习,qq50143307
re: 将小写金额转化为大写 onekey 2007-07-26 16:57  
加上一行:
MoneyValue = Convert.ToDecimal(MoneyValue).ToString("0.00");

就可以了
re: 将小写金额转化为大写 onekey 2007-07-26 16:53  
3000 结果:叁元整
嗯 是的 你看我程序是下载到Update目录中暂存的

后面的做法我忘记说了 我编写了一个AppCopy.exe的程序 专门负责将下载完的所有文件覆盖过去 下载完了以后就调用这个程序 然后关闭自己
主程序文件已经打开,不能覆盖吧?
@ColdDog

如果想不放到Update目录里 那就自己写个ASP程序来读取文件流 再返回给客户
如果可以,也发一份Demo代码给我参考一下吧,谢了~
linxinxuan (at) hotmail.com
@王学军
你提到"服务器有一虚拟目录Update,里面放置客户端的所有程序"——这么说,客户端程序必须放在IIS控制下的某个目录里了?
博主:
我想建立一个动态的GridView,然后控制"syid"不可见,但是可以取到.
代码如下,最后一行老有问题,好像是动态加载的列是不计入count中的,请帮我分析一下,谢谢了!

DataTable dtb = new DataTable();
dtb.Columns.Add("操作",typeof(string));
dtb.Columns.Add("状态", typeof(string));
dtb.Columns.Add("createtime", typeof(DateTime));
dtb.Columns.Add("syid", typeof(Guid));
DataRow dr = dtb.NewRow();
dr["操作"] = "注册";
dr["状态"] = "批准";
dr["createtime"] = "2007-01-03";
dr["syid"] = Guid.NewGuid();
dtb.Rows.Add(dr);
GV_main.DataSource = dtb;
GV_main.DataBind();

GV_main.Columns[3].Visible = false;(错误)
@放放
首先文件的Modify时间是没办法很容易的修改的 不必要担心这个

如果你的ERP的数据库是远程模式 就不能使用主动更新必须是强制更新
方式 每次登录时必须检查更新 这种情况不建议使用全部下载

压缩这个曾经做过 很多解压软件都有命令行方式 使用这个技巧喽
谢谢,已经收到!
我原先用的自动更新用的是delphi写的,是不判断文件时间的,因为文件的时间在客户端可以自己改的,我们ERP一些升级是必须升级的,因此不管任何情况,只要点了自动更新,下载服务器文件列表,不管版本新不新,都会重新下载一遍,从而保证了程序的最新!

请问有没办法为了减少下载量,先下载压缩包,然后在客户端解压更新??
@onekey
请看我程序中的一句话:

// 将下载回来的文件修改时间更正 WebClient不会做这事只有我们来做了
FileInfo f = new FileInfo(newFilePath);
f.LastWriteTime = currentResource.LastModified;

与源文件不一样我们就改成一样的噻
根据时间来判断更新的文件不妥吧?
下载下来的文件的modifydate和源文件的不一样吧
谢谢楼主!!请发送Email 到 hzjianglf@163.com 谢谢
@放放
如果你需要 可以MAIL给你一份
@Allen Zhang
回“关于子文件夹”功能的实现:

思路比较简单 将Default.aspx返回的XML中加入所有文件的相对于Update目录的全路径如:
c:\intpubs\Update\f1.dll
c:\intpubs\Update\dic\f2.dll
则返回的XML应该为:
<xml><row File="f1.dll" date="..." /><row File="/dic/f2.dll" date=".."/></xml>
到客户端 解析文件名中有没有//包含的目录路径,有则创建,如需要实现N层子目录,则程序更复杂一点

程序代码如下:
1.修改Default.aspx 找到这段话:
DirectoryInfo di = new DirectoryInfo(UpdatePath);
foreach (FileInfo fi in di.GetFiles())
{
// 判断如果是Default.aspx则不下载到客户端
if (fi.Name == "Default.aspx") continue;
FileList.Add(fi.Name, fi.LastWriteTime.ToString());
}
修改为:
foreach (DirectoryInfo di in DirectoryInfo(UpdatePath).GetDirectories())
{
foreach (FileInfo fi in di.GetFiles())
{
// 这个地方我没调试 基本思路就是将每个文件的全路径改成相对于Update的路径,如fi.FullName返回c:\intpubs\Update\dic\f2.dll,将这个字符串中的"c:\intpubs\update"替换为空,就成了\dic\f2.dll了,然后再将\改为/ 以方便到客户端后http访问
FileList.Add(fi.FullName.Replace(UpdatePath, "").Replace("/", "\\"), "");
}
}

2. 在客户端解析这个XML时 对文件名进行解析 发现有目录路径就创建 也很简单 我就不多写了
楼主,有个问题,如果更新中包含子文件夹呢? 要如何实现呀?
楼主不错!!! 能否提供下载??谢谢!
这个不错,学习以下
支持
很不错的,支持博主
而且是很不错。
如果连服务器的文件都有病毒 那还有什么搞头~~~

何况我们需要更新的文件都是刚编译出来的。

再说服务器上还有杀毒软件哈
不错精神不错

不过没考虑安全性,如果服务端的被感染
尤其现在 AV 、熊猫什么的

ClickOnce 有这方面的效验......

呵呵呵呵
顶!!
写的不错。哈哈
晕 ~~~ 我是做技术的哈 文字水平很差的~~~
第一次写博客 大家如果觉得有用请给支持一下哈
LZ,应该是纪念哦 (: