none
Visual Studio 2017/2019 インストール時の個別のコンポーネントの選択に関して RRS feed

  • 質問

  • Visual Studio InstallerからVisual Studioをインストールまたは構成の変更をする際、
    個別のコンポーネントに.NET Frameworkの各バージョンのSDKやTargeting Pack、Windows 10 SDK等が選択肢としてありますが、
    これらを選択してインストールしても、「コントロールパネル」の「プログラムと機能」のすべてのプログラムの一覧に表示されません。
    これらのSDK等はインストールされたVisual Studioに内蔵され、そのVisual Studioからのみ参照可能で、他のバージョンのVisual Studioや他の開発環境からは参照できないのでしょうか。
    また、Visual Studioとは別にインストールされた同じSDK等は、Visual Studio InstallerによってインストールされたVisual Studioからは参照されないのでしょうか。
    (例えば、Visual Studio 2019と2017をインストールする際に個別のコンポーネントで同じバージョンのWindows 10 SDKを選択してインストールし、
    それらとは別に同じバージョンのWindows 10 SDKを個別にインストールした場合、
    同じバージョンのWindows 10 SDKが3回インストールされ、Visual Studio 2019での開発時にWindows 10 SDKを参照したい場合は
    2017のWindows 10 SDKや個別にインストールしたWindows 10 SDKは参照できないのでしょうか。)
    • 編集済み Te I 2020年8月13日 1:48
    2020年8月13日 1:45

回答

  • これらを選択してインストールしても、「コントロールパネル」の「プログラムと機能」のすべてのプログラムの一覧に表示されません。
    • .Net Core SDK
       => Microsoft .NET Core SDK x.x.xxx
    • .Net Framework SDK
       => Microsoft .NET Framework x.x.x SDK
    • .Net Framework Targeting Pack
       => Microsoft .NET Framework x.x.x Targeting Pack
    • Windows 10 SDK
       => Windows Software Development Kit - Windows 10.0.xxxxx.xx

    というような名称で見つかりませんか?


    これらのSDK等はインストールされたVisual Studioに内蔵され、そのVisual Studioからのみ参照可能で、他のバージョンのVisual Studioや他の開発環境からは参照できないのでしょうか。
    また、Visual Studioとは別にインストールされた同じSDK等は、Visual Studio InstallerによってインストールされたVisual Studioからは参照されないのでしょうか。

    既定では以下にインストールされて、同じコンポーネントがインストール済みの場合は重複インストールされません。

    • %ProgramFiles(x86)%\Microsoft SDKs
    • %ProgramFiles(x86)%\Windows Kits

    つまり、同じインストール先を参照していますし、必要があれば別バージョンでインストール済みのSDKをつかったビルドも(手間がかかりますが)可能です。

    また、Visual Studioとは別にインストールされた同じSDK等は、Visual Studio InstallerによってインストールされたVisual Studioからは参照されないのでしょうか。

    たとえば、2017でインストール済みのコンポーネントを、2019の個別のコンポーネントでそれのみチェックを外したりすると、必要な領域の合計サイズの変化が小さいことがわかると思います。

    Windowsのインストーラーではコンポーネントが一意のIDを持っており、そのIDを参照することでインストールされているかを識別することができます。


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

    • 回答としてマーク Te I 2020年10月5日 23:58
    2020年8月13日 6:27

すべての返信

  • これらを選択してインストールしても、「コントロールパネル」の「プログラムと機能」のすべてのプログラムの一覧に表示されません。
    • .Net Core SDK
       => Microsoft .NET Core SDK x.x.xxx
    • .Net Framework SDK
       => Microsoft .NET Framework x.x.x SDK
    • .Net Framework Targeting Pack
       => Microsoft .NET Framework x.x.x Targeting Pack
    • Windows 10 SDK
       => Windows Software Development Kit - Windows 10.0.xxxxx.xx

    というような名称で見つかりませんか?


    これらのSDK等はインストールされたVisual Studioに内蔵され、そのVisual Studioからのみ参照可能で、他のバージョンのVisual Studioや他の開発環境からは参照できないのでしょうか。
    また、Visual Studioとは別にインストールされた同じSDK等は、Visual Studio InstallerによってインストールされたVisual Studioからは参照されないのでしょうか。

    既定では以下にインストールされて、同じコンポーネントがインストール済みの場合は重複インストールされません。

    • %ProgramFiles(x86)%\Microsoft SDKs
    • %ProgramFiles(x86)%\Windows Kits

    つまり、同じインストール先を参照していますし、必要があれば別バージョンでインストール済みのSDKをつかったビルドも(手間がかかりますが)可能です。

    また、Visual Studioとは別にインストールされた同じSDK等は、Visual Studio InstallerによってインストールされたVisual Studioからは参照されないのでしょうか。

    たとえば、2017でインストール済みのコンポーネントを、2019の個別のコンポーネントでそれのみチェックを外したりすると、必要な領域の合計サイズの変化が小さいことがわかると思います。

    Windowsのインストーラーではコンポーネントが一意のIDを持っており、そのIDを参照することでインストールされているかを識別することができます。


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

    • 回答としてマーク Te I 2020年10月5日 23:58
    2020年8月13日 6:27
  • gekka様
    ご回答ありがとうございます。

    > ~というような名称で見つかりませんか?
    .Net Core SDK
    => Microsoft .NET Core SDK x.x.xxx
    …「Microsoft .NET Core SDK x.x.xxx」はインストールされておらず、「Microsoft .NET Core SDK x.x.xxx from Visual Studio」がインストールされていました。
     個別に「Microsoft .NET Core SDK x.x.xxx」をインストールすると両方残るので、それぞれ別のプログラムとして認識されているようです。
     プログラム一覧に表示されるインストールサイズも大きく異なりました。(「Microsoft .NET Core SDK 3.1.401」は564MB、「~ from Visual Studio」は168KB)

    .Net Framework SDK
    => Microsoft .NET Framework x.x.x SDK
    .Net Framework Targeting Pack
    => Microsoft .NET Framework x.x.x Targeting Pack
    …個別のDeveloper Packインストーラーでインストール後にVisual Studio InstallerからTargeting Packをインストールした場合はプログラム一覧に表示されましたが、
     インストールの順番を逆にするとプログラムの一覧には表示されませんでした。

    Windows 10 SDK
    => Windows Software Development Kit - Windows 10.0.xxxxx.xx
    …見つかりました。

    > たとえば、2017でインストール済みのコンポーネントを、2019の個別のコンポーネントでそれのみチェックを外したりすると、必要な領域の合計サイズの変化が小さいことがわかると思います。
    この現象は確認できました。
    ,NET Framework SDK・Targeting Packは個別のDeveloper Packを先にインストールしている時でもこの現象を確認できました。

    以上から考えると、,NET Core SDK以外は、gekka様がおっしゃられたように重複インストールされずに同じインストール先を参照しているように思います。
    (,NET Framework SDK・Targeting Packがインストールの順番でプログラム一覧にあったりなかったりするのは謎ですが)
    2020年8月13日 13:26
  • Te Iさん、こんにちは。フォーラムオペレーターのKumoです。
    MSDNフォーラムにご投稿くださいましてありがとうございます。

    VSインストーラ―またはWindows SDKインストーラ―を実行する際に、Windows SDKの参照パスがレジストリテーブルとシステム環境変数に格納されます。
    そして、VSが実行されている場合、レジストリテーブルとシステム環境変数に基づいて指定されたSDKコンポーネントをロードします。
    例えば:


    さらに、Registry Explorerという拡張機能をダウンロードして、Visual Studioに必要な別のSDKレジストリの情報を確認することもできます。

    どうぞよろしくお願いいたします。 

    MSDN/ TechNet Community Support Kumo ~参考になった投稿には「回答としてマーク」をご設定ください。なかった場合は「回答としてマークされていない」も設定できます。同じ問題で後から参照した方が、情報を見つけやすくなりますので、 ご協力くださいますようお願いいたします。また、MSDNサポートに賛辞や苦情がある場合は、MSDNFSF@microsoft.comまでお気軽にお問い合わせください。~

    2020年8月19日 1:58
    モデレータ