0

使人们可以在本地运行它而不是指向网络驱动器的快捷方式的最简单方法是什么?

我认为让他们始终在本地运行它,并让它在启动时检查更新,也许创建一个文本文档(在带有可执行文件的网络驱动器上),其中包含我随每个版本更新的最新版本号,它读取它在应用程序启动时带有流读取,如果最新版本号大于正在运行的可执行文件,它会提示一个消息对话框,并要求更新到最新版本,如果是,它会将其从网络驱动器中复制出来......我不知道如何让它在应用程序运行时复制最新版本并覆盖自身,而不制作单独的可执行文件......我只想保持它非常简单,我觉得必须有一种方法。

在一次失败的尝试中,我创建了一个监视网络驱动器目录的文件监视,当插入一个文件名为“terminate”的文件时,它将关闭所有正在运行的机器上的程序实例并让我更新文件:) ...但是网络安全不允许此功能运行,并且除非程序在本地运行,否则在启动时会出错,这删除了允许人们在桌面上保留指向文件的快捷方式的全部目的.

编辑,现在我认为有一个计时器并在每晚 7:00 PM 关闭它会很有趣。在那之后的任何时候都是我 90% 的时间都在处理它。

private void Form1_Load(object sender, EventArgs e)
        {
            this.timer1 = new System.Windows.Forms.Timer(this.components);
            this.timer1.Interval = 30000;
            this.timer1.Tick += new System.EventHandler(this.timer1_Tick);

            this.timer1.Start();

        }
        private void timer1_Tick(object sender, System.EventArgs e)
        {



            DateTime t1 = Convert.ToDateTime(DateTime.Now.ToShortTimeString());

            DateTime t2 = Convert.ToDateTime(("7:00 PM"));
            if (t1.TimeOfDay.Ticks == t2.TimeOfDay.Ticks)

            {
                this.Close();
               // /DateTime.Now.ToShortTimeString();
            }
4

2 回答 2

3

将它放到人们的机器上的最简单方法可能是 xcopy 部署和使用登录脚本创建的快捷方式?这将是一项网络管理任务。

或者,ClickOnce部署它。这将托管在网页中并处理应用程序更新。它也很容易安装。

正如您所说,它将无法自行更新,该过程将锁定文件。如果您选择手动执行此操作,您将需要一个代理可执行文件来处理更新。Paint.NET 在更新自身时执行此操作。

对用户来说,这个 exe 的存在可以保持沉默——您可以将它作为主 exe 的资源保存并仅在更新期间将其写入文件。更新后,更新 exe 可以再次被主 exe 删除。

于 2011-03-15T22:42:15.740 回答
2

我认为您可能想要部署一个应用程序,将可执行文件的“最新”版本复制到本地计算机,然后在本地启动它。

所以基本上是一小批

cp <path/to/remote> <path/to/local>
<path/to/local>

让他们运行他们的本地计算机,而不是从网络驱动器运行 exe。

您只需更新网络驱动器。下次他们运行该应用程序时,它将获取最新版本,然后在本地运行它。

于 2011-03-15T22:44:10.910 回答