none
Visual Studio Installer の使い方 RRS feed

  • 質問

  • デスクトプアプリ配布のためにVisual Studio Installer の使い方を調べています。

    次のことを確認しておきたくて質問させていただきます。

    ア 「2017 Visual Studio Installer」をただ単にダウンロードしても,Visual Studio 2019で認識できるのでしょうか?

    イ「新しいプロジェクトを作るのだから,あらかじめのビルドは必要がない」との認識でよろしいのでしょうか?

    ウ アイコンを設定するタイミングは確認しましたが,「WordやExcelのファイルを収めているフォルダ」を設定するタイミングはあるのでしょ  うか?

    以上の3点をお聞きしたいと思います。よろしくお願いします。

    2019年6月29日 6:46

回答

  • ア 「2017 Visual Studio Installer」をただ単にダウンロードしても,Visual Studio 2019で認識できるのでしょうか?

    VisualStudioがExpressでなければVS2017,2019ならどちらも同じですからダウンロードしてインストール可能です。
    どれがインストールされているかを自動で認識してくれて、同時にインストールすることもできます。

    あるいは
    VS2017ならメニューの「ツール->拡張機能と更新プログラム」、VS2019ならメニューの「拡張機能->拡張機能の管理」を選びます。
    表示されるウィンドウの左側でオンラインを選んで、右上の虫眼鏡のところに「Installer」と入力すると、中央の一覧に「Microsoft Visual Studio Installer Projects」が表示されるので、Downloadをします。
    そうしてVisualStudioをいったん閉じるとインストールが開始されて、インストールを開始したバージョンんにインストールがされます。


    イ「新しいプロジェクトを作るのだから,あらかじめのビルドは必要がない」との認識でよろしいのでしょうか?

    インストーラーをビルドする時点でインストーラーに収めるファイルは存在していないといけません。
    ですが、作る前であれば存在している必要はないので「あらかじめのビルドは必要が無い」は正しいという事になります。
    ただ、存在していないファイルを収めるように指定するのは面倒なやり方が必要になるので、ビルドしておいて存在させておく方がやりやすいです。

    ソリューションエクスプローラーにデスクトップアプリのプロジェクトが作られているかと思いますが、同じソリューションにインストーラーのプロジェクトを作ることをお勧めします。
    アプリのプロジェクトを参照することでインストーラーをビルドするときにアプリのプロジェクトも自動でビルドしてくれます。


    ウ アイコンを設定するタイミングは確認しましたが,「WordやExcelのファイルを収めているフォルダ」を設定するタイミングはあるのでしょうか?

    アプリのインストール先とは別のフォルダもインストール中に指定したいという事でしょうか?
    であれば標準機能ではありません。
    (他のインストーラー作成ソフトでは可能だが、VisualStudioのインストーラプロジェクトでは作れないという意味です)
    いちおうカスタム動作という機能を使えばフォルダを選択する機能は作ることは可能です。

    ですが、アプリの最初の起動時にフォルダを選択してもらう方が楽だと思いますよ。
    起動時にフォルダが未選択の状態であればフォルダ選択ダイアログを表示して、選択されたらそのフォウだ設定は保存しておくという事です。

    やり方としては、

    1. ソリューションエクスプローラーでMy Projectをダブルクリックしてプロジェクトのプロパティウィンドウを開く
    2. 左の設定を選ぶ
    3. 右のテーブルで名前に仮に「対象フォルダ」とつけて、種類をString,スコープをユーザーというプロパティを追加しておきます。

    あとは

    Public Class Form1
        Sub New()
    
            ' この呼び出しはデザイナーで必要です。
            InitializeComponent()
    
            ' InitializeComponent() 呼び出しの後で初期化を追加します。
    
            If String.IsNullOrWhiteSpace(My.Settings.対象フォルダ) Then
                'フォルダの設定が存在しないなら選択ダイアログを表示
                Dim dlg As New FolderBrowserDialog
                If dlg.ShowDialog() = DialogResult.OK Then
                    My.Settings.対象フォルダ = dlg.SelectedPath 'フォルダ設定を保存する
                End If
            End If
        End Sub
    End Class
    のようにしてやるだけで、フォルダの設定が保存できるので簡単です。

    個別に明示されていない限りgekkaがフォーラムに投稿したコードにはフォーラム使用条件に基づき「MICROSOFT LIMITED PUBLIC LICENSE」が適用されます。(かなり自由に使ってOK!)

    • 編集済み gekkaMVP 2019年6月29日 8:41
    • 回答としてマーク goodwave 2019年6月29日 17:02
    2019年6月29日 8:31

すべての返信

  • ア 「2017 Visual Studio Installer」をただ単にダウンロードしても,Visual Studio 2019で認識できるのでしょうか?

    VisualStudioがExpressでなければVS2017,2019ならどちらも同じですからダウンロードしてインストール可能です。
    どれがインストールされているかを自動で認識してくれて、同時にインストールすることもできます。

    あるいは
    VS2017ならメニューの「ツール->拡張機能と更新プログラム」、VS2019ならメニューの「拡張機能->拡張機能の管理」を選びます。
    表示されるウィンドウの左側でオンラインを選んで、右上の虫眼鏡のところに「Installer」と入力すると、中央の一覧に「Microsoft Visual Studio Installer Projects」が表示されるので、Downloadをします。
    そうしてVisualStudioをいったん閉じるとインストールが開始されて、インストールを開始したバージョンんにインストールがされます。


    イ「新しいプロジェクトを作るのだから,あらかじめのビルドは必要がない」との認識でよろしいのでしょうか?

    インストーラーをビルドする時点でインストーラーに収めるファイルは存在していないといけません。
    ですが、作る前であれば存在している必要はないので「あらかじめのビルドは必要が無い」は正しいという事になります。
    ただ、存在していないファイルを収めるように指定するのは面倒なやり方が必要になるので、ビルドしておいて存在させておく方がやりやすいです。

    ソリューションエクスプローラーにデスクトップアプリのプロジェクトが作られているかと思いますが、同じソリューションにインストーラーのプロジェクトを作ることをお勧めします。
    アプリのプロジェクトを参照することでインストーラーをビルドするときにアプリのプロジェクトも自動でビルドしてくれます。


    ウ アイコンを設定するタイミングは確認しましたが,「WordやExcelのファイルを収めているフォルダ」を設定するタイミングはあるのでしょうか?

    アプリのインストール先とは別のフォルダもインストール中に指定したいという事でしょうか?
    であれば標準機能ではありません。
    (他のインストーラー作成ソフトでは可能だが、VisualStudioのインストーラプロジェクトでは作れないという意味です)
    いちおうカスタム動作という機能を使えばフォルダを選択する機能は作ることは可能です。

    ですが、アプリの最初の起動時にフォルダを選択してもらう方が楽だと思いますよ。
    起動時にフォルダが未選択の状態であればフォルダ選択ダイアログを表示して、選択されたらそのフォウだ設定は保存しておくという事です。

    やり方としては、

    1. ソリューションエクスプローラーでMy Projectをダブルクリックしてプロジェクトのプロパティウィンドウを開く
    2. 左の設定を選ぶ
    3. 右のテーブルで名前に仮に「対象フォルダ」とつけて、種類をString,スコープをユーザーというプロパティを追加しておきます。

    あとは

    Public Class Form1
        Sub New()
    
            ' この呼び出しはデザイナーで必要です。
            InitializeComponent()
    
            ' InitializeComponent() 呼び出しの後で初期化を追加します。
    
            If String.IsNullOrWhiteSpace(My.Settings.対象フォルダ) Then
                'フォルダの設定が存在しないなら選択ダイアログを表示
                Dim dlg As New FolderBrowserDialog
                If dlg.ShowDialog() = DialogResult.OK Then
                    My.Settings.対象フォルダ = dlg.SelectedPath 'フォルダ設定を保存する
                End If
            End If
        End Sub
    End Class
    のようにしてやるだけで、フォルダの設定が保存できるので簡単です。

    個別に明示されていない限りgekkaがフォーラムに投稿したコードにはフォーラム使用条件に基づき「MICROSOFT LIMITED PUBLIC LICENSE」が適用されます。(かなり自由に使ってOK!)

    • 編集済み gekkaMVP 2019年6月29日 8:41
    • 回答としてマーク goodwave 2019年6月29日 17:02
    2019年6月29日 8:31
  • gekkaさん,何度もご返信くださりご助力をいただいてますことにに感謝いたします。

    アとイは完全に理解しました。ウについては実際にやってみないことには「そうなんだ!」ということにはならないかも…。

    ただウについては,私の書き方がまずいせいで,私が何をやりたがっているのかわからないと思われたのではないでしょうか。

    「WordやExcelのファイルを収めているフォルダ」を設定するタイミングはあるのでしょうか?」
    これですと,ファイルを収めているフォルダを設定することをお聞きしていることになります。申し訳ありませんでした。
    このアプリは私ではなく,町内会の総務が自分のPCで使い,任期を終えれば新任の総務のPCにインストールすることになっていますので,「アプリ本体と一緒にwordとexcelのファイルを収めているAtenaPrintフォルダも一緒にインストール」できるとらくだなと思ったのが質問の趣旨でした。(この場合,パスはC:\AtenaPrintとなってアプリ本体と同じ場所にあるのではないだろうかと思ったのでした。そうでなければgekkaさんが教えてくださった方法をとることになりますが)

    ということで,あらためて質問させていただきます。よろしくお願いいたします。


    • 編集済み goodwave 2019年6月29日 10:00
    2019年6月29日 9:59
  • @kitの2002年の記事に
    https://www.atmarkit.co.jp/fdotnet/tools/vssetup/vssetup_01.html
    「セットアップ機能を付ける前提条件は。まず、セットアップ対象となるプログラムはすでに完成しているとし,そのほか、
    アイコンもデザイン済み(32×32と16×16の両方)で、添付ドキュメント(readme.htm)も作成済みであることだ。」
    とありましたので,wordとexcelのファイルを同梱して結果を見てみたいと思います。
    gekkaさん,ありがとうございました。

    2019年6月29日 17:01