更新正在执行的程序文件

董松建 2016-03-29 11:06:04
我现在在对公司的ERP系统进行二次开发。

现有的ERP系统中提供了外挂程序的功能。说白了就是在系统的工具栏添加了一个动态的快捷方式,调用本地的exe文件。
为了方便部署,我将exe放到了公司的文件服务器上。这样就不用在每台机器都复制程序文件了,而且每次更新程序只需要更新server上的文件就行了,不用每台机器都更新。

但是由于用户量太大,每次想覆盖服务器上的程序文件时,经常提示文件已打开,不能覆盖。

有什么办法能让用户打开的程序是server上的一个副本,不会影响我更新程序吗?
...全文
250 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
董松建 2016-04-07
  • 打赏
  • 举报
回复
好吧,谢谢各位的帮忙。 程序比较简单,不希望做的太复杂。 写了个批处理,让ERP调用批处理,将程序考到本地执行了。
cheng2005 2016-03-30
  • 打赏
  • 举报
回复
这是运行机制的问题,从A处取文件,放到B处运行,这样B处根本就不需要维护,只要更新A处就可以了
董松建 2016-03-30
  • 打赏
  • 举报
回复
我再描述的具体点吧: 程序文件放在了文件服务器上:\\file-server\erpex\a.exe 用户在自己的电脑上通过erp上添加的快捷方式,访问并运行这个程序。 每当用户执行这个程序,a.exe这个文件就会处于锁定状态,无法被修改或覆盖。 虽然每个人运行的时间不长,但是由于用户量很大,而且公司是24小时三班倒,所以可以理解为在任一时间点,都至少有一个人在运行这个程序,即a.exe这个文件一直处于锁定的状态,无法更新。 楼上的方法虽然解决了我将更新文件放到服务器上的问题。但是并没有解决程序文件更新的问题。 比如用户A在运行期间,用户B想将更新文件复制到运行目录也是复制不过去的。
谷凯Jump 2016-03-30
  • 打赏
  • 举报
回复
还是使用clickonce部署吧
右非 2016-03-30
  • 打赏
  • 举报
回复
要是我就拔了网线 复制上去再说 多简单个事整这么复杂
rtdb 2016-03-29
  • 打赏
  • 举报
回复
一般是在运行目录外面另建一个更新目录,所要更新文件先放到更新目录中。 客户端启动时再从更新目录拷贝到运行目录。

111,129

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧