0

ネットワークドライブを指すショートカットの代わりにローカルで実行できるようにするための最も簡単な方法は何ですか?

常にローカルで実行し、起動時に更新をチェックし、バージョンごとに更新する最新のバージョン番号を含むテキストドキュメント(実行可能ファイル付きのネットワークドライブ上)を作成するように考えています。アプリケーションの起動時にストリーム読み取りが行われ、実行中の実行可能ファイルよりも最新のバージョン番号が大きい場合は、メッセージダイアログが表示され、最新バージョンに更新するように求められます。更新されている場合は、ネットワークドライブからコピーされます...別の実行可能ファイルを作成せずに、アプリケーションの実行中に最新バージョンをコピーして上書きする方法がわかりません...非常にシンプルに保ちたいので、方法が必要だと感じています。

失敗したattamptで、ネットワークドライブのディレクトリを監視するファイルウォッチを作成しました。ファイル名が「terminate」のファイルが挿入されると、実行中のすべてのマシンでプログラムのインスタンスが閉じられ、ファイルが更新されます。 :) ...ただし、ネットワークセキュリティではこの関数を実行できず、プログラムをローカルで実行しない限り起動時にエラーが発生します。これにより、ユーザーがファイルを指すショートカットをデスクトップに保持できるようにするという目的全体が削除されます。 。

編集、今のところ、タイマーを持って、毎晩午後7時にシャットダウンするのは楽しいだろうと思いました。その後はいつでも、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をデプロイします。これはWebページでホストされ、アプリケーションの更新を処理します。インストールも簡単です。

あなたが言うように、それはそれ自身を更新することができません、プロセスはファイルをロックします。これを手動で行うことを選択した場合は、更新を処理するための代理実行可能ファイルが必要になります。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 に答える