Foxtable(狐表)用户栏目专家坐堂 → 关于小版本更新外部引用DLL


  共有5507人关注过本帖树形打印复制链接

主题:关于小版本更新外部引用DLL

帅哥哟,离线,有人找我吗?
guoweidong
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:140 积分:1202 威望:0 精华:0 注册:2013/7/28 12:10:00
关于小版本更新外部引用DLL  发帖心情 Post By:2014/5/21 15:48:00 [显示全部帖子]

Dim CurrPath As String = System.IO.Directory.GetCurrentDirectory()
Dim Dll As String = CurrPath & "\project\dll"
If System.IO.Directory.Exists(Dll) Then
    For Each filenames As String In System.IO.Directory.GetFiles(Dll)
        System.IO.File.Copy(filenames, filenames.Replace("\project\dll", ""), True)
        System.IO.File.Delete(filenames)
    Next
    System.IO.Directory.Delete(Dll)
End If


这段处理更新DLL会出现一个问题,一是当应用程序未关闭的情况下,复制文件会失败,导致更新失败,还有种情况就是文件未复制完整也会导致失败,这块应如何处理?


其实主要原因在于,我在全局中调用了DLL变量,所以在每次更新这个DLL和启动发现了冲突,全局变量中的调用好像是在beforeopenproject之前就开始执行了。没法再做前一步的处理了,这样的情况下,狐表目前是真的没办法处理了吗?所谓的使用bat做更新,都是浮云了,只能从第三方更新先做检测了,只是感觉这样也不是什么最好的方法,我还是比较喜欢只用一个程序去做处理。
[此贴子已经被作者于2014-5-22 11:00:44编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
guoweidong
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:140 积分:1202 威望:0 精华:0 注册:2013/7/28 12:10:00
  发帖心情 Post By:2014/5/21 15:51:00 [显示全部帖子]

强制关闭又找不到第三方程序进程名,用的都是同一个进程名 foxtable.exe ,因为用狐表做的不只一个应用,总不可能都强制关了吧。
[此贴子已经被作者于2014-5-21 15:51:27编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
guoweidong
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:140 积分:1202 威望:0 精华:0 注册:2013/7/28 12:10:00
  发帖心情 Post By:2014/5/21 15:53:00 [显示全部帖子]

最坑的是,更新失败后就不能继续再更新了,内核的版本已更新了,可DLL编译失败了!

 回到顶部
帅哥哟,离线,有人找我吗?
guoweidong
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:140 积分:1202 威望:0 精华:0 注册:2013/7/28 12:10:00
  发帖心情 Post By:2014/5/21 15:55:00 [显示全部帖子]

更新就从DLL目录下复制到应用根目录的,当首次打开的时候把DLL目录里的文件复制到根目录再删了DLL里的文件的。


 回到顶部
帅哥哟,离线,有人找我吗?
guoweidong
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:140 积分:1202 威望:0 精华:0 注册:2013/7/28 12:10:00
  发帖心情 Post By:2014/5/21 15:58:00 [显示全部帖子]

强制关闭foxtable,我还有其它的应用也是狐表做的,是不是都要被关了?这不符合情理啊。

 回到顶部
帅哥哟,离线,有人找我吗?
guoweidong
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:140 积分:1202 威望:0 精华:0 注册:2013/7/28 12:10:00
  发帖心情 Post By:2014/5/21 17:21:00 [显示全部帖子]

我就是写在beforeopenproject里,怎么判断不能重新打开项目呢?

 回到顶部
帅哥哟,离线,有人找我吗?
guoweidong
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:140 积分:1202 威望:0 精华:0 注册:2013/7/28 12:10:00
  发帖心情 Post By:2014/5/22 10:56:00 [显示全部帖子]

求助高人,一定要顶下去。

 回到顶部
帅哥哟,离线,有人找我吗?
guoweidong
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:140 积分:1202 威望:0 精华:0 注册:2013/7/28 12:10:00
  发帖心情 Post By:2014/5/22 11:19:00 [显示全部帖子]

那只是顺便问的一句话,而不是这个问题真正得到的解决答案!其实主要原因在于,我在全局中调用了DLL变量,所以在每次更新这个DLL和启动发现了冲突,全局变量中的调用好像是在beforeopenproject之前就开始执行了。没法再做前一步的处理了

 回到顶部
帅哥哟,离线,有人找我吗?
guoweidong
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:140 积分:1202 威望:0 精华:0 注册:2013/7/28 12:10:00
  发帖心情 Post By:2014/5/22 11:51:00 [显示全部帖子]

.bat?你每天打开是从bat文件是可以的,但要从狐表先执行那就不行了。

 回到顶部
帅哥哟,离线,有人找我吗?
guoweidong
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:140 积分:1202 威望:0 精华:0 注册:2013/7/28 12:10:00
  发帖心情 Post By:2014/5/22 11:53:00 [显示全部帖子]

以下是引用blackzhu在2014-5-22 11:32:00的发言:
文件监控呢 有没有用?

所有的一切必须在全局变量使用之前执行,你觉得在狐表上写代码还有可能实现了吗?除非他做Main初始化那个加载窗口之前接口


 回到顶部
总数 12 1 2 下一页