none
.NET Framework オフラインインストーラのUIの特定の表示項目を非表示にする方法 RRS feed

  • 質問

  • .NET Framework 4.6.1 オフラインインストーラを使用した場合に、最初に表示されるセットアップ画面で推定ダウンロードサイズが表示されます。ネットワークからダウンロードを行う必要がないためこれらを表示させないことはできないのでしょうか?

    「.NET Framework 配置ガイド (開発者向け)」には記載はありませんでした。.NET Installer をサイレントで実行し、UIは別途用意する方法しかありませんか?

    2017年6月13日 5:28

回答

  • いちおう見えなくはなりそう

    1. .NET Framework 4.6.1オフラインインストーラー(NDP461-KB3102436-x86-x64-AllOS-ENU.exe)を用意する。
    2. 上記オフラインインストーラーを7zファイルとして解凍する。
    3. 解凍したファイル群からUiInfo.xml , ParameterInfo.xml , String.xmlを適当なフォルダにコピーする。
      例: C:\CustomParameterFolder
    4. UiInfo.xmlをメモ帳などで開く
    5. <EulaPage>と<EulaPage_HighDPI>というタグを探す。
    6. 上記タグ内の<Static>タグをすべて探す。
      (どのラベルに対応するかは<Text>タグから推測する)
    7. <Static>タグ内の<X>,<Y>をウィンドウ外になるように適当に変更。
      例: <Y>をマイナスに書き換え
    8. UiInfo.xmlを保存。
    9. parameterfolderオプションで上記フォルダを指定してオフラインインストーラーを実行してみる
      (parameterfolderオプションはオフラインインストーラーに/?でヘルプ表示させると記述がある)
    NDP461-KB3102436-x86-x64-AllOS-ENU.exe /parameterfolder "C:\CustomParameterFolder"

    CustomParameterFolderを配置するのが厄介な場合は、7zで解凍したファイルのUiInfo.xmlを直接書き換えて、そのままsetup.exeを実行でも可能みたい。(/X64 /X86 /redist を引数に追加が必要?)
    #すごく容量が大きくなりますが


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

    2017年6月13日 9:10

すべての返信

  • オフラインインストーラーにこだわっても仕方がないのでは?

    それよりもWindows 8以降及び.NET 4~4.6.2をインストールしているWindows 7は明日のWindows Updateで4.7へアップデートされます。


    2017年6月13日 6:10
  • ダウンロードのインジケータも含めての画面構造になっているので、.NET Framework のインストーラUIを非表示にするか、WiX など、.NET Framework のインストーラのUIを表示せずにインストールするインストーラを使う必要があると思います。

    UIを別途設ける方法については、方法: .NET Framework 4.5 インストーラーの進行状況を表示する に記載があります。サンプルコードもリンクがあるので参考になると思います。

    InstallShield が.NET Framework のインストーラを動かす部分については InstallShield 自体を持っていないのでわかりません。


    とっちゃん@わんくま同盟, Visual Studio and Development Technologies http://blogs.wankuma.com/tocchann/default.aspx

    2017年6月13日 6:19
  • ご回答ありがとうございます。

    Windows Updateで.NET 4.7未満は4.7へアップデートの情報ありがとうございます。

    諸事情によりネットワークに接続できない環境を想定する必要があるので、オフラインインストーラを使用する必要があります。

    その際に、ダウンロードサイズが表示されると不要な懸念を生む可能性があるので、できれば避けたいです。

    2017年6月13日 6:27
  •  


    ご回答ありがとうございます。

    >ダウンロードのインジケータも含めての画面構造になっているので、
    >.NET Framework のインストーラUIを非表示にするか、WiX など、
    >.NET Framework のインストーラのUIを表示せずにインストールする
    > インストーラを使う必要があると思います。
    > UIを別途設ける方法については、方法: .NET Framework 4.5
    >インストーラーの進行状況を表示する に記載があります。
    >サンプルコードもリンクがあるので参考になると思います。

    オフライン(web版)の.NETインストーラのUIは、都合よく変更できないようですね。

    推定ダウンロードサイズを表示させないためには、サイレントでインストールし、UIを実装するしかなそうですが、

    Windows8.1で.NET Framework 4.6.1 をインストールできない場合があるのでサイレントで実行するのは避けたいです。

    推定ダウンロードサイズの表示を許容するしかなそうです。

    2017年6月13日 8:27
  • いちおう見えなくはなりそう

    1. .NET Framework 4.6.1オフラインインストーラー(NDP461-KB3102436-x86-x64-AllOS-ENU.exe)を用意する。
    2. 上記オフラインインストーラーを7zファイルとして解凍する。
    3. 解凍したファイル群からUiInfo.xml , ParameterInfo.xml , String.xmlを適当なフォルダにコピーする。
      例: C:\CustomParameterFolder
    4. UiInfo.xmlをメモ帳などで開く
    5. <EulaPage>と<EulaPage_HighDPI>というタグを探す。
    6. 上記タグ内の<Static>タグをすべて探す。
      (どのラベルに対応するかは<Text>タグから推測する)
    7. <Static>タグ内の<X>,<Y>をウィンドウ外になるように適当に変更。
      例: <Y>をマイナスに書き換え
    8. UiInfo.xmlを保存。
    9. parameterfolderオプションで上記フォルダを指定してオフラインインストーラーを実行してみる
      (parameterfolderオプションはオフラインインストーラーに/?でヘルプ表示させると記述がある)
    NDP461-KB3102436-x86-x64-AllOS-ENU.exe /parameterfolder "C:\CustomParameterFolder"

    CustomParameterFolderを配置するのが厄介な場合は、7zで解凍したファイルのUiInfo.xmlを直接書き換えて、そのままsetup.exeを実行でも可能みたい。(/X64 /X86 /redist を引数に追加が必要?)
    #すごく容量が大きくなりますが


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

    2017年6月13日 9:10
  • 技術的には可能でしょうが、再頒布条件にバイナリに一切の変更を加えないこと、のような条件がありませんでしたっけ?

    Visual Studio 2017に付属する.NET Framework 4.6.2の再頒布権については次のように説明されていました。

    お客様は、ソフトウェアのライセンス条項に従って、以下に示すファイルを複製し、改変が加えられていない状態で、お客様のプログラムと共に頒布することができます。

    オフライン インストーラー

    • dotNetFx-x86-x64-AllOS-ENU.exe (Visual Studio 内の .NET Framework 4.6.2)
    • NDP462-KB3151800-x86-x64-AllOS-ENU.exe (Microsoft ダウンロード センターなどの他のチャネルにある .NET Framework 4.6.2)

    ということで、gekkaさんの提案されている方法はほぼ確実にライセンス違反です。

    • 編集済み 佐祐理 2017年6月14日 1:15
    2017年6月14日 1:02
  • 恐らくは、コマンドライン引数で手を加えた XML ファイルを読み込ませることで、バイナリには手を加えずに実現ということを狙っているのだと思います。

    ただ、画面を Microsoft が意図しない方法で変更していることを考えると、改変と言われても反論できないのでやめた方がよいですね。

    2017年6月14日 3:37
    モデレータ
  • 解凍して得られたXMLファイルに再頒布権はないのでは…?
    2017年6月14日 4:31
  • 皆様、ご回答ありがとうございます。

    .NET Framework のオフラインインストーラのUIに表示される表示は消せる可能性はあるがライセンスに抵触するが答えですね。皆様、さまざまな視点からの解釈していただきありがとうございました。

    明日、このスレッドで参考になった投稿に関してgekka様の回答を選ばせていただきます。

    2017年6月14日 7:25
  • 言われて見れば、確かにそうですね。
    失礼しました。
    2017年6月14日 13:54
    モデレータ