C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[3]: PG配布(コピー処理)の方法


(過去ログ 173 を表示中)

[トピック内 4 記事 (1 - 4 表示)]  << 0 >>

■99844 / inTopicNo.1)  PG配布(コピー処理)の方法
  
□投稿者/ 河童 (19回)-(2022/06/13(Mon) 11:21:33)

分類:[C#] 

VS2022 C# .NET5.0でWindwosフォームアプリを作成しています。

PG「SampleTest.exe」開始フォームのロード時にPG配布(コピー処理)を実行したいと思っています。

20台程度のクラサバでシステムが稼働しています。
PGを修正したときにPG配布(コピー処理)を実行するために、
親機に共有フォルダを作成して、そこに配布PGを保管します。
子機は「SampleTest.exe」起動時に共有フォルダにアクセスして、配布PGを確認します。

修正内容によって、保管するファイル・ディレクトリ構成は異なります。
「SampleTest.exe」が修正される場合もあります。

子機が「SampleTest.exe」を起動すると、配布PGがあるかどうか確認します。
※「SampleTest.exe」がメインで動いています。
1.配布PGの有無チェック
2.プロセスの確認
3.配布実行(コピー処理)

PG配布で困っていることは、プロセスの確認の部分です。
「SampleTest.exe」が修正された場合、実行中のプロセスを終了させると
PG配布(コピー処理)ができなくなります。
プロセスを終了させてからコピー処理を実行したいです。

教えていただきたいことは、
「SampleTest.exe」を起動して、PG配布の確認、配布(コピー処理)まで実行する方法です。
またPG配布の手間をなくす方法があれば、教えていただきたいです。

よろしくお願いします。

        private void Form1_Load(object sender, EventArgs e)
        {
            
            // 更新実行確認(バージョン確認)
            // 更新前にプロセス確認
            Process[] ps = Process.GetProcessesByName("SampleTest");
            Foreach (Process p in ps)
            {
                p.Kill();
                p.WaitForExit(1000);
                if (p.HasExited) MessageBox.Show("PG終了");
            }

            // 更新実行
            if (Set_CopyDirectory(CopyFldName, PasteFldName))
                // 更新終了(正常)
                MessageBox.Show("更新終了しました");
            else
                // 更新終了(異常)
                MessageBox.Show("更新できませんでした");

        }




引用返信 編集キー/
■99845 / inTopicNo.2)  Re[1]: PG配布(コピー処理)の方法
□投稿者/ radian (43回)-(2022/06/13(Mon) 11:39:49)
SampleTest.exe を直接起動せずに、先に別の更新チェック用のプログラムで更新して、
そちらから起動するのが一番簡単だと思います。
SampleTest.exe が実行されてからだと、EXEがロックされるのでどうにもなりません。
引用返信 編集キー/
■99850 / inTopicNo.3)  Re[2]: PG配布(コピー処理)の方法
□投稿者/ とっちゃん (762回)-(2022/06/13(Mon) 13:39:43)
色々とやり方がありますが、基本的には既存のツールに頼るのが、安定利用できてよいと思います。

WinForms(Windowsデスクトップアプリ)とのことなので、ClickOnce が一番手軽でいいのでは?と思います。
.NET 5(.NET Core 3.1 でも利用可能)なので、無難ではないかな?と思います。

アップデートとは別件になりますが、.NET 5 LTS ではないため、すでにサポートが終了したランタイムとなります。
(もともと .NET 5 がリリースされる段階で次のLTS(.NET 6)が出たら速やかに移行することというのがアナウンスされています)。

VS2022へのバージョンアップが必要となりますが、.NET 6への移行もお勧めします。

ランタイムの期限等についてはこちらもご参照ください。
https://docs.microsoft.com/ja-jp/dotnet/core/releases-and-support?WT.mc_id=DT-MVP-32182#net-version-lifecycles

引用返信 編集キー/
■99865 / inTopicNo.4)  Re[3]: PG配布(コピー処理)の方法
□投稿者/ 河童 (20回)-(2022/06/13(Mon) 17:14:46)
No99850 (とっちゃん さん) に返信
ありがとうございます。

「ClickOnce」の機能は便利そうですが、自分には難しそうです。

今回は、radian さんの方法で更新用PGを作成しようと思います。
まだできていませんが、この質問は解決済みとします。


まだVS2019の環境が残っていて、アップグレードするか悩み中です。


解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -