Rainbow Engine

IT技術を分かりやすく簡潔にまとめることによる学習の効率化、また日常の気付きを記録に残すことを目指します。

C#

ソフトウェアをインストールするバッチプログラムのご紹介

投稿日:2022年6月28日 更新日:

 

<目次>

(1) ソフトウェアをインストールするバッチプログラムのご紹介
 (1-1) 概要
 (1-2) 構文
 (1-3) サンプルプログラム
 (1-4) (応用)プロキシサーバがある場合

(1) ソフトウェアをインストールするバッチプログラムのご紹介

ソフトウェアのインストールをワンタッチで自動化(or半自動化)したい時に活用できるかもしれないサンプルプログラムをご紹介します。

例えば、以下のようなユースケースで活用できる可能性があります。
・企業で多くの人にソフトのダウンロードを促す必要があるケース
・セキュリティ事情等により毎回ソフトウェアがクリアされて再インストールが必要なケース

(1-1) 概要

(前提)

(1-2) 構文

●①インターネットからzoomのインストーラをダウンロード

WebClientクラスは、インターネット(orローカル)に対してURIを指定してのデータ送受信を行うためのクラスです。WebClientを使う事で、インターネット上のURLのコンテンツをHTML形式でダウンロードしたり、URLを指定してファイルをダウンロードしたり出来ます。
内部的には「HttpWebRequest」というクラスをベースに作られており、汎用的なWeb操作(コンテンツのダウンロード、ファイルのダウンロードなど)を簡易的に呼び出せるようクラス化したものです。
 
(構文例)
//# xxxxのインストーラをダウンロードするURLを引数に指定して、インストーラをダウンロード
client.DownloadFile("https://XXXX.exe");
//# 指定のURLのコンテンツをHTML形式の文字列でダウンロード
var content = client.DownloadString("https://xxxxxxx.html");
(図121)

●②ダウンロードしたインストーラを起動してインストールを実施する

Processクラスは、ローカルやリモートのプロセス(≒メモリ上にロードされた「実行中のプログラム」)に対してアクセスを提供します。
 
(構文)
Process.Start([exeファイルのパス]);
(図122)

(1-3) サンプルプログラム

(サンプルプログラム)
using System;
using System.Diagnostics;
using System.Net;
using System.Reflection;
using System.Threading;


namespace TestDownloadApp
{
    class Program
    {
        static void Main(string[] args)
        {
            try
            {
                Console.WriteLine("---(1) Zoom Client のダウンロードを開始します");
                //### ①インターネットからzoomのインストーラをダウンロード
                //# WebClientクラスのインスタンスを生成
                using (var client = new WebClient())
                {
                    //# ZoomのインストーラをダウンロードするURLを引数に指定して、インストーラをダウンロード
                    client.DownloadFile("https://zoom.us/client/5.9.3.3169/ZoomInstaller.exe?archType=x64", "ZoomInstaller.exe");
                    //# 指定のURLのコンテンツをHTML形式の文字列でダウンロード
                    var content = client.DownloadString("https://docs.oracle.com/javase/8/docs/technotes/guides/idl/GShome.html");
                }

                Console.WriteLine("---(2) Zoom Client のインストールを開始します");
                //### ②ダウンロードしたインストーラを起動してインストールを実施する
                //# Process.StartでEXEファイルを指定して起動します。
                //# インストーラは、プログラムのEXEと同じ階層にダウンロードされるため
                //# そのパスを「System.IO.Path.GetDirectoryName」で取得します。
                //# 最後にEXEの名前(ZoomInstaller.exe)を繋げてフルパスで指定します。
                var installer_path = System.IO.Path.GetDirectoryName(Assembly.GetEntryAssembly().Location);
                Process.Start(installer_path + "\\ZoomInstaller.exe");
            }
            catch (Exception e)
            {
                Console.WriteLine(e.Message);
            }
            Thread.Sleep(2000);
        }
    }
}
(図131)

(動画132)

目次にもどる

(応用)プロキシサーバがある場合

 
プロキシサーバがある場合の認証の方法については、こちらの記事で紹介しています。
 
→(解説)C#で407 Proxy Authentication Requiredエラーが出た時の対処方法(★)

Adsense審査用広告コード


Adsense審査用広告コード


-C#

執筆者:


comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

関連記事

SOAP通信のサンプルをご紹介(ASP.NET Web Service=ASMXを使ったHelloWorld)

  <目次> (1) SOAP通信のサンプルをご紹介(ASP.NET Web Service=ASMXを使ったHelloWorld)  (1-1) SOAP通信とは?  (1-2) SOAP …

C#のエラー「CS1069~このアセンブリへの参照を追加する事を検討してください」の対処方法+実際のソース例も掲載

<目次> (1) C#のエラー「CS1069~このアセンブリへの参照を追加する事を検討してください」の対処方法  (1-1) 発生状況・エラーメッセージ  (1-2) 原因  (1-3) 対処法 (1 …

C#のIListとは?Listとの違いや使いどころもご紹介

<目次> (1) C#のIListとは?Listとの違いや使いどころもご紹介  (1-1) IListやIList<T>とは?  (1-2) Listとの違い  (1-3) IListの利 …

ASP.NETでViewに値を渡す方法

  <目次> (1) ASP.NETでViewに値を渡す方法  (1-1) 方法1:アクションメソッドの引数に追加  (1-2) 方法2:ViewBagを使う方法  (1-3) 方法3:ビュ …

Xamarin.FormsでHelloworldする手順+Buttonコントロール追加のサンプルコード紹介

<目次> (1) Xamarin.FormsでHelloworldする手順  (1-1) Xamarin.Formsプロジェクト構成の概要  (1-2) MainPage.xamlの修正  (1-3) …

  • English (United States)
  • 日本語
Top