如何从networking共享中运行应用程序,以便更新应用程序?

我们有一个内部桌面应用程序,我们已经部署到networking共享。 在该目录中是每个版本的子目录,即z:\ Apps \ ApplicationX \ 1.0 z:\ Apps \ ApplicationX \ 2.0 z:\ Apps \ ApplicationX \ 2.1

我想在用户桌面上放置一个指向最新版本应用程序的快捷方式。 我目前的解决scheme是将当前版本放到一个名为“z:\ Apps \ ApplicationX \ Current”的目录中,并在其桌面上的快捷方式到那里的exe。

问题是当他们运行应用程序时,我无法更新应用程序,因为文件被locking。

我试图改变快捷方式指向一个batch file,在本地复制文件,然后从那里运行,但我们都在Windows 7上,和UAC导致问题复制到C:驱动器,我期望它的问题被安装。

我想我可以将可执行文件复制到用户主驱动器并从那里运行,但我不喜欢在用户主驱动器中有一个可执行文件的想法。 这也意味着networking上有多个应用程序的副本,我不是一个粉丝。

我也认为我可以有一个快捷方式的快捷方式,我只是更新快捷方式,但这也不起作用。

我目前的解决scheme是有一个batch file,其中有启动命令指向当前版本,并指向该batch file的快捷方式。

其他人有没有可能的解决办法?

  • 为域中的所有Windows 7 PC启用telnet客户端
  • 允许未经许可的组访问共享 - Windows 7
  • Windows 7不尊重来自DHCP的首选路由器顺序
  • Windows 7/64位:如何更改文件夹内的所有文件的文件扩展名
  • 一切都说Applocker应该工作:为什么不呢?
  • 从Win 2008R2服务器或Win7通过Powershell添加DNS Alogging到Win 2008R2服务器
  • 5 Solutions collect form web for “如何从networking共享中运行应用程序,以便更新应用程序?”

    我的首选方法是两个应用程序。 你已经拥有的主要应用程序。 第二个是发射器/更新器。 创build启动程序的快捷方式,它会检查可执行文件path的configuration设置(encryption乱码,xml,纯文本,直接编码到启动程序中,无论如何),然后启动它。 一旦主应用程序启动,加载器将终止。

    每当你得到一个新的版本,你更新启动程序的configuration文件,未来的程序启动将打开新的版本。

    这是“引导装载程序”风格的过程。 有一个小型的援助应用程序,指向全尺寸的应用程序。 客户端启动这个小应用程序,然后将它们引导到适当的完整应用程序。

    奖励积分,如果您有启动程序检查完整大小的应用程序的哈希指纹或签名,以确保没有人获得创意,并尝试链接到启动器的另一个应用程序。

    听起来像一个传统的应用程序。 最好的办法就是不要过于复杂,而只是安排更新的停机时间。

    我同意DanBig的观点,在你的简单情况下,除非你想修改它很多(像Ruscalbuild议的那样,这是一个好主意),只是安排一个“中断”,在其中踢你的文件锁并replace.exe文件也许一夜之间或周末)。

    “我想在用户桌面上放置一个指向最新版本应用程序的快捷方式” – OP

    至于让他们在桌面上,为什么不把你的捷径指向z:\ Apps \ ApplicationX \,并将当前的EXE放在那里。 然后有必要的子文件夹过去的版本/版本,如z:\ Apps \ ApplicationX \版本。 这样,客户端的快捷方式永远不会改变,在更新过程中,您只需将现有的exe文件移动到rev#文件夹中,并将新的/更新的.exe文件放入z:\ Apps \ ApplicationX \文件夹。

    我同意DanBig和TheCleaner。 我们有一个像这样的内部应用程序。 快捷方式去\\server\share\application\application.exe ,当我们需要做更新,我等待,直到用户回家的一天,并使用服务器pipe理器或计算机pipe理器closures打开的文件,所以新的可以复制。

    这不是很漂亮,但其他的更糟,恕我直言。

    您可以使用在Linux上运行的Samba服务器。 当您需要更新应用程序时,只需重命名“当前”文件夹,并创build一个名为“当前”的新文件夹。 该份额必须是只读的。

    在Linux(Unix)上,允许重命名或删除文件,打开文件的进程将能够使用旧版本,直到文件描述符closures。

    服务器问题集锦,包括 Linux(Ubuntu, Centos,Debian等)和Windows Server服务器.