<?xml version="1.0" encoding="utf-8"?>
<rss xmlns:atom="http://www.w3.org/2005/Atom" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
  version="2.0">
  <channel>
    <title>Visual Studio サポート チーム blog</title>
    <atom:link
      href="https://docs.microsoft.com/archive/blogs/jpvsblog/feed.xml"
      rel="self"
      type="application/rss+xml" />
    <link>https://docs.microsoft.com/archive/blogs/jpvsblog/feed.xml</link>
    <description>Visual Studio / .NET Framework をご利用いただいている開発者の方に役立つ情報をお届けします。</description>
    <lastBuildDate>Sun, 06 Jan 2019 23:30:48 GMT</lastBuildDate>
    <language>ja</language>
    <sy:updatePeriod>hourly</sy:updatePeriod>
    <sy:updateFrequency>1</sy:updateFrequency>
    <item>
      <title>Visual Studio サポート チーム ブログ終了のお知らせ</title>
      <link>https://docs.microsoft.com/archive/blogs/jpvsblog/announce</link>
      <pubDate>Mon, 07 Jan 2019 08:30:47 GMT</pubDate>
      <dc:creator><![CDATA[Visual Studio Support Team in Japan]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/jpvsblog/?p=2425</guid>
      <description><![CDATA[こんにちは、Visual Studio サポート チームです。

&nbsp;

2019 年 1...]]></description>
      <content:encoded><![CDATA[こんにちは、Visual Studio サポート チームです。

&nbsp;

2019 年 1 月をもちまして、弊社システム刷新の都合により本ブログを終了いたします。

今後、以下の専用フォーラムから同様の情報公開を行ってまいります。

&nbsp;
<p style="padding-left: 30px"><a href="https://social.msdn.microsoft.com/Forums/ja-JP/home?forum=visualstudiosupportteamja">Visual Studio サポート チーム フォーラム</a></p>
&nbsp;

これまで多くのお客様に本ブログをご覧いただき、誠にありがとうございました。

開発者様のお役に立てるよう情報発信を続けてまいりますので、今後ともどうぞよろしくお願いいたします。]]></content:encoded>
    </item>
    <item>
      <title>.NET Framework の更新プログラムを手動でインストールする際の注意事項について</title>
      <link>https://docs.microsoft.com/archive/blogs/jpvsblog/netfx-update</link>
      <pubDate>Mon, 13 Aug 2018 10:03:10 GMT</pubDate>
      <dc:creator><![CDATA[Visual Studio Support Team in Japan]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/jpvsblog/?p=2395</guid>
      <description><![CDATA[こんにちは、Visual Studio サポート チームです。


今回は、.NET Framework...]]></description>
      <content:encoded><![CDATA[<span style="font-family: メイリオ">こんにちは、Visual Studio サポート チームです。
</span>

<span style="font-family: メイリオ">今回は、.NET Framework の更新プログラムの構成と、更新プログラムを手動でインストールする場合の注意事項についてご案内します。
</span>

<span style="font-family: メイリオ">なお、Windows Update の自動更新や WSUS (Windows Server Update Services) をご利用の場合には、本内容は該当しません。また、Windows 10 や Windows Server 2016 については、.NET Framework の更新プログラムは OS の更新プログラムに含まれる形で提供されているため、本内容は該当しません。
</span>

&nbsp;

<span style="font-family: メイリオ;font-size: 16pt"><strong>.NET Framework の更新プログラムの構成について
</strong></span>

<a href="https://blogs.technet.microsoft.com/jpsecurity/2016/10/13/net-framework-monthly-rollups-explained/"><span style="font-family: メイリオ">こちらのドキュメント</span></a><span style="font-family: メイリオ">で紹介されているように、.NET Framework の更新プログラムは、「セキュリティおよび品質ロールアップ」、「セキュリティのみの更新プログラム」、「品質ロールアップ プレビュー」の 3 種類の形態で提供されています。</span>

<span style="font-family: メイリオ">これらの更新プログラムのパッケージは、以下のように、「(A) .NET Framework の各バージョン向けのパッケージを対象 OS ごとにまとめた KB」 と、「(B) 更新プログラムの実体の KB」から構成されています。
</span>

&nbsp;

<span style="font-family: メイリオ">&lt;更新プログラムの構成&gt;
(A) 各バージョン向けを OS ごとにまとめた KB
</span>
<p style="margin-left: 11pt"><span style="font-family: メイリオ">(B-1) .NET Framework 4.5.2 向けの KB
(B-2) .NET Framework 4.6 以上向けの KB (*1)
(B-3) .NET Framework 3.5 向けの KB
(B-4) 問題発生時の修復用プログラム (msipatchregfix.exe) (*2)
(B-5) .NET Framework 4.7 の前提となるKB4019990 (未適用の場合、B-2 の適用時に必要な場合あり)
</span></p>
&nbsp;

<span style="font-family: メイリオ">(*1) .NET Framework 4.6 以上では更新プログラムは共通化されており、例えば、.NET Framework 4.6 と .NET Framework 4.7.2 でも更新プログラムは共通です。
(*2) 手動で更新プログラムをインストールする場合、msipatchregfix.exe は不要です。
</span>

&nbsp;

<span style="font-family: メイリオ">一例として、Windows 7 および Windows Server 2008 R2 向けの 2018 年 5 月の 「セキュリティおよび品質ロールアップ (KB4099633)」の場合は、以下の 5 つのファイルから構成されており、<span>Microsoft Update カタログ上から公開されています。</span>
</span>
<p style="margin-left: 22pt"><img alt="" src="https://msdnshared.blob.core.windows.net/media/2018/08/081318_0047_NETFramewor1.png" /><span style="font-family: メイリオ">
</span></p>
&nbsp;

<span style="font-family: メイリオ">前述の順に並べると以下のとおりです。
</span>

&nbsp;

<span style="font-family: メイリオ">(A) 2018-05 Security and Quality Rollup for .NET Framework 3.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1 on Windows 7 and Server 2008 R2 for x64 (<a href="https://support.microsoft.com/en-us/help/4099633/security-and-quality-rollup-for-net-framework-3-5-1-4-5-2-4-6-4-6-1-4">KB4099633</a>)
</span>
<p style="margin-left: 11pt"><span style="font-family: メイリオ">(B-1) <a href="http://download.windowsupdate.com/c/msdownload/update/software/secu/2018/05/ndp45-kb4096495-x64_41a96e508184f9dac887e02a2c1caf75842a4e95.exe">ndp45-kb4096495-x64_41a96e508184f9dac887e02a2c1caf75842a4e95.exe</a>
(B-2) <a href="http://download.windowsupdate.com/c/msdownload/update/software/secu/2018/05/ndp47-kb4096418-x64_09433765a4d90e1a2295da0a1a1cf9b1b8a64f56.exe">ndp47-kb4096418-x64_09433765a4d90e1a2295da0a1a1cf9b1b8a64f56.exe </a>
(B-3) <a href="http://download.windowsupdate.com/d/msdownload/update/software/secu/2018/05/windows6.1-kb4095874-x64_13904512d1614ba1a336061e90f7078becf3be5a.msu">windows6.1-kb4095874-x64_13904512d1614ba1a336061e90f7078becf3be5a.msu</a>
(B-4) <a href="http://download.windowsupdate.com/msdownload/update/software/secu/2012/10/msipatchregfix-amd64_5011cb29b096fb674a4795ee8fc2f7fdad33863a.exe">msipatchregfix-amd64_5011cb29b096fb674a4795ee8fc2f7fdad33863a.exe</a>
(B-5) <a href="http://download.windowsupdate.com/c/msdownload/update/software/updt/2017/05/windows6.1-kb4019990-x64_35cc310e81ef23439ba0ec1f11d7b71dd34adfe5.msu">windows6.1-kb4019990-x64_35cc310e81ef23439ba0ec1f11d7b71dd34adfe5.msu</a>
</span></p>
&nbsp;

<span style="font-family: メイリオ">例えば、対象の環境に .NET Framework 3.5 と .NET Framework 4.5.2 がインストールされている場合は、上記の (B-1) と (B-3) のみをインストールします。
</span>

<span style="font-family: メイリオ">それぞれの KB 番号に対応したドキュメント (<a href="https://support.microsoft.com/ja-jp/help/4096495/description-of-the-security-and-quality-rollup-for-net-framework-4-5-2">KB4096495</a>、<a href="https://support.microsoft.com/ja-jp/help/4096418/description-of-the-security-and-quality-rollup-for-net-framework-4-6-4">KB4096418</a>、<a href="https://support.microsoft.com/ja-jp/help/4095874/description-of-the-security-and-quality-rollup-for-net-framework-3-5-1">KB4095874</a>、<a href="https://support.microsoft.com/ja-jp/help/4019990/update-for-the-d3dcompiler-47-dll-component-on-windows">KB4019990</a>) も公開されていますので、対象の環境にインストールすべき更新プログラムがどれであるのかご確認ください。対象の環境にインストールされている .NET Framework のバージョンを確認する方法については、<a href="https://docs.microsoft.com/ja-jp/dotnet/framework/migration-guide/how-to-determine-which-versions-are-installed">こちらのドキュメント</a>をご参照ください。
</span>

&nbsp;

<span style="font-family: メイリオ"><strong><span style="font-size: 16pt">ご注意事項</span>
</strong></span>

<span style="font-family: メイリオ">手動でのインストールの場合、.NET Framework 4.5.2 を利用している環境であっても、.NET Framework 4.6 以上向けの更新プログラムを適用できてしまう動作となっています。また、逆に、.NET Framework 4.6 以上の環境に対して .NET Framework 4.5.2 向けの更新プログラムを適用できてしまうケースがあります。(*3)
</span>

<span style="font-family: メイリオ">このように誤ったバージョンの更新プログラムを適用してしまうと、.NET Framework のランタイム ライブラリ間のバージョンに不整合が生じ、以下のドキュメントで紹介されているような問題が発生する場合があります。</span>

&nbsp;
<p style="margin-left: 11pt"><span style="font-family: メイリオ">.NET Framework 4 以降の環境に異なるバージョンの .NET Framework 向けの更新プログラムを適用すると発生する問題について
<a href="https://support.microsoft.com/ja-jp/help/3122487">https://support.microsoft.com/ja-jp/help/3122487</a>
</span></p>
&nbsp;

<span style="font-family: メイリオ">誤ったバージョンの更新プログラムを適用してしまった場合は、コントロールパネルの「インストールされた更新プログラムの一覧」から対象の更新プログラムをアンインストールし、正しい更新プログラムを適用しなおしてください。
</span>

&nbsp;
<p style="margin-left: 22pt"><span style="font-family: メイリオ"><a href="https://msdnshared.blob.core.windows.net/media/2018/08/untitled.png"><img src="https://msdnshared.blob.core.windows.net/media/2018/08/untitled.png" alt="" width="770" height="576" class="alignnone size-full wp-image-2415" /></a></span></p>
&nbsp;

<span style="font-family: メイリオ">対象の</span><span style="font-family: メイリオ">更新プログラムについては、以下の一覧から ".NET Framework" や "4.6" をキーワードに検索し、対象の OS に該当する KB のリンク先ページをご覧いただくなどしてご確認ください。</span>
<p style="padding-left: 30px"><span style="font-family: メイリオ"><a href="https://support.microsoft.com/en-us/help/4073007">Software Update Services and Windows Server Update Services changes in content for 2017</a>
<a href="https://support.microsoft.com/help/3215781">Software Update Services and Windows Server Update Services changes in content for 2016</a>
<a href="https://support.microsoft.com/help/3132806">Software Update Services and Windows Server Update Services changes in content for 2015</a>
</span></p>
&nbsp;

<span style="font-family: メイリオ">(*3) 具体的には、Windows Server 2012、Windows 8.1、Windows Server 2012 R2 に対して、2017 年 9 月より前の更新プログラムを適用する場合が該当します。2017 年 9 月以降の更新プログラムでは、OS の機能と連携して不適切な更新プログラムのインストールをブロックする機能が追加されています。</span><span style="font-family: メイリオ">これより前の時点では、Windows Server 2012 においては .NET Framework の誤ったバージョンの手動インストールをブロックする機能が提供されておらず、OS の機能上の制限事項として、不適切な更新プログラムのインストールが許容されておりました。</span>

&nbsp;

<span style="font-family: メイリオ">更新プログラムの構成や Microsoft Update カタログの表示に分かりづらい面があり、手動で適用されているご利用者様にはご不便をおかけいたしますが、上記内容についてご承知おきくださいますようお願い申し上げます。</span>]]></content:encoded>
    </item>
    <item>
      <title>Azure DevTest Labs および Azure VM の自動シャットダウン機能の設定時刻について</title>
      <link>https://docs.microsoft.com/archive/blogs/jpvsblog/dtl-autoshutdown-time</link>
      <pubDate>Wed, 20 Jun 2018 16:12:47 GMT</pubDate>
      <dc:creator><![CDATA[Visual Studio Support Team in Japan]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/jpvsblog/?p=2365</guid>
      <description><![CDATA[こんにちは、Visual Studio サポート チームです。


今回は、Azure DevTest Labs および Azure...]]></description>
      <content:encoded><![CDATA[<span style="font-family: メイリオ">こんにちは、Visual Studio サポート チームです。
</span>

<span style="font-family: メイリオ">今回は、Azure DevTest Labs および Azure VM の自動シャットダウン機能 (*1) を設定した時刻と、実際にシャットダウンが行われる実行タイミングの関係について、ご案内します。
</span>

<span style="font-family: メイリオ">設定内容によっては、意図したタイミングでシャットダウンできないケースがありますので、本稿が参考になりましたら幸いです。
</span>

&nbsp;
<p style="margin-left: 11pt"><span style="font-family: メイリオ">(*1) Azure DevTest Labs は、アプリケーションのテスト環境となる VM を Azure 上に構築・管理し、アプリケーションのデプロイプロセスにテスト環境のプロビジョニングを組み込んで、テスト環境の構築に要するコストを削減するためのサービスです。Azure VM の自動シャットダウン機能も、DevTest Labs から提供されています。</span></p>
<p style="margin-left: 11pt"><span style="font-family: メイリオ">Azure DevTest Labs とは
</span><a href="https://docs.microsoft.com/ja-jp/azure/lab-services/devtest-lab-overview"><span style="font-family: メイリオ">https://docs.microsoft.com/ja-jp/azure/lab-services/devtest-lab-overview</span></a><span style="font-family: メイリオ">
</span></p>
&nbsp;

<span style="font-family: メイリオ"><strong><span style="font-size: 18pt">現象</span>
</strong></span>

<span style="font-family: メイリオ">DevTest Labs または Azure VM で、自動シャットダウンの設定したにも関わらず、設定当日に対象 VM の自動シャットダウンが実行されない場合があります。
</span>

&nbsp;

<span style="font-family: メイリオ;font-size: 18pt"><strong>原因</strong></span>

<span style="font-family: メイリオ">本現象は、自動シャットダウン機能の想定された動作に依存して発生している可能性があります。
</span>

<span style="font-family: メイリオ">DevTest Labs および Azure VM の自動シャットダウン機能では、設定を行った時点から所定の時間間隔をあけて実行される必要があり、この間隔が短いと当日のシャットダウンは行われず、翌日の当該時刻にシャットダウンが実行される動作となります。<span style="color: #002060">
</span></span>

<span style="font-family: メイリオ">この所定の時間間隔の目安は、通知機能 (Email または Webhook) の設定に応じて以下とおりとなっています。
</span>

&nbsp;
<p style="margin-left: 11pt"><span style="font-family: メイリオ">通知機能を有効にしている場合 : 31 分間
</span></p>
<p style="margin-left: 11pt"><span style="font-family: メイリオ">通知機能を無効にしている場合 : 1 分間
</span></p>
&nbsp;

<span style="font-family: メイリオ">以下に、具体的な設定と、想定される結果の例を示します。
</span>

&nbsp;
<p style="margin-left: 11pt"><span style="font-family: メイリオ">例 1)　2018 年 6 月 18 日 13:00 に、通知機能付きで自動シャットダウンの実行時刻を 13:15 に設定した場合
</span></p>
<p style="margin-left: 11pt"><span style="font-family: メイリオ">設定時点 (13:00) から自動シャットダウンの実行時刻 (13:15) までに 31 分以上の時間間隔があけられていないため、<span style="color: #ff0000">翌日の</span> 6 月 19 日 13:15 から毎日自動シャットダウンが実行されます。</span></p>
&nbsp;
<p style="margin-left: 11pt"><span style="font-family: メイリオ">例 2) 2018 年 6 月 18 日 13:00 に、通知機能付きで自動シャットダウンの実行時間を 13:35 に設定した場合
</span></p>
<p style="margin-left: 11pt"><span style="font-family: メイリオ">設定時点 (13:00) から自動シャットダウンの実行時間 (13:35) までに 31 分以上の時間間隔があけられているため、設定当日の 6 月 18 日 13:35 から毎日自動シャットダウンが実行されます。
</span></p>
&nbsp;

<span style="font-family: メイリオ">なお、Azure VM や DevTest Labs の自動シャットダウンと通知は以下の画面から設定してご利用いただけます。
</span>

<span style="font-family: メイリオ">・ 対象の Azure VM -&gt; 自動シャットダウン
</span>
<p style="margin-left: 22pt"><img alt="" src="https://msdnshared.blob.core.windows.net/media/2018/06/062018_0702_AzureDevTes1.png" /><span style="font-family: メイリオ">
</span></p>
<span style="font-family: メイリオ">・ 対象の DevTest Labs -&gt; 構成とポリシー -&gt; 自動シャットダウン
</span>
<p style="margin-left: 22pt"><img alt="" src="https://msdnshared.blob.core.windows.net/media/2018/06/062018_0702_AzureDevTes2.png" /><span style="font-family: メイリオ">
</span></p>
&nbsp;

<span style="font-family: メイリオ;font-size: 18pt"><strong>対処方法</strong></span>

<span style="font-family: メイリオ">自動シャットダウンを設定した当日から、通知機能付きで自動シャットダウンを動作させたい場合は、設定時点から、余裕をもって 35 分以上の時間をおいて、シャットダウン時刻を指定してください。
</span>

<span style="font-family: メイリオ">通知機能を利用されない場合は、余裕をもって 5 分以上の時間をおいてシャットダウンが行われるよう設定してください。
</span>

<span style="font-family: メイリオ">なお、35 分以上時間をあけているにも関わらず、自動シャットダウンが正常に動作しなかった場合は、Azure 内のネットワーク等の一時的な問題などに起因している可能性が考えられますので、翌日など、タイミングを改めてご確認ください。 </span>]]></content:encoded>
    </item>
    <item>
      <title>Visual Studio 2015 および Visual C++ 2017 のリンク時のコード生成における最適化の不具合について</title>
      <link>https://docs.microsoft.com/archive/blogs/jpvsblog/link-optimization-virtual</link>
      <pubDate>Mon, 04 Jun 2018 09:39:03 GMT</pubDate>
      <dc:creator><![CDATA[Visual Studio Support Team in Japan]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/jpvsblog/?p=2335</guid>
      <description><![CDATA[こんにちは、Visual Studio サポート チームです。


今回は、Visual C++ 2015 および Visual C++ 2017 で確認されている、C++...]]></description>
      <content:encoded><![CDATA[<span style="font-family: メイリオ">こんにちは、Visual Studio サポート チームです。
</span>

<span style="font-family: メイリオ">今回は、Visual C++ 2015 および Visual C++ 2017 で確認されている、C++ プロジェクトのリンク時のコード生成における最適化の不具合についてご案内します。
</span>

<span style="font-family: メイリオ">なお、この事象については報告が非常に少なく現在も修正に向けて調査中ですが、進展があり次第この記事を更新する予定です。
</span>

&nbsp;

<span style="font-family: メイリオ;font-size: 18pt"><strong>現象</strong></span>
<span style="font-family: メイリオ">以下の条件を満たす場合に、仮想関数呼び出しが正常に行われず基底クラスのメンバー関数が実行される場合があります。
</span>
<ul>
 	<li><span style="font-family: メイリオ">速度優先の最適化 (/O2 オプションもしくは /Ox オプション) を指定している。
</span></li>
 	<li><span style="font-family: メイリオ">リンク時のコード生成 (/LTCG オプション) を指定している。</span></li>
 	<li><span style="font-family: メイリオ"><span style="font-family: メイリオ">プログラム全体の最適化 (/GL オプション) を指定している。</span></span></li>
 	<li><span style="font-family: メイリオ"><span style="font-family: メイリオ"><span style="font-family: メイリオ">仮想関数の呼び出しと仮想関数の実装が異なるバイナリ間で行われている。
</span></span></span></li>
</ul>
&nbsp;

<span style="font-family: メイリオ;font-size: 18pt"><strong>原因</strong></span>
<span style="font-family: メイリオ">本現象は弊社製品の不具合に起因して発生しています。
</span>

<span style="font-family: メイリオ">Visual C++ コンパイラーおよびリンカーは、呼び出される仮想関数がコード生成時に静的に決定でき、かつ最適化によるパフォーマンスの向上が見込めると判断した場合、devirtualization と呼ばれる仮想関数呼び出しを直接呼び出しに置き換える最適化を行います。
</span>

<span style="font-family: メイリオ">リンク時のコード生成が指定されている場合、仮想関数の呼び出しと仮想関数の実装が異なるバイナリ間で行われている場合も devirtualization が試みられますが、仮想関数ではなく基底クラスの関数が呼び出されるコードが生成される場合があります。
</span>

&nbsp;

<span style="font-family: メイリオ;font-size: 18pt"><strong>回避策
</strong></span>

<span style="font-family: メイリオ">以下のいずれかの方法でリンク時のコード生成における devirtualization の最適化を無効化することで、この問題を回避できます。
</span>
<ul>
 	<li><span style="font-family: メイリオ">コンパイラー オプションで /d2notypeopt を指定する</span></li>
 	<li><span style="font-family: メイリオ"><span style="font-family: メイリオ">リンカー オプションで /d2:-notypeopt オプションを指定する
</span></span></li>
</ul>
&nbsp;

<span style="font-family: メイリオ;font-size: 18pt"><strong>留意事項
</strong></span>

<span style="font-family: メイリオ">上記の回避策では最適化が一部行われないことにより、アプリケーションの実装によってはパフォーマンスが低下する可能性があります。また、<a href="https://docs.microsoft.com/en-us/cpp/build/reference/sdl-enable-additional-security-checks">/sdl オプション</a>で出力される警告の一部は、上記の回避策を適用した場合コンパイラーやリンカーによって摘出されなくなる可能性があります。
</span>

<span style="font-family: メイリオ">そのため、<strong>現象</strong>で示した問題に該当し、アプリケーションのパフォーマンスへの影響を許容できる場合のみ、回避策の適用をご検討ください。
</span>

&nbsp;

<span style="font-family: メイリオ;font-size: 18pt"><strong>ステータス
</strong></span>

<span style="font-family: メイリオ">マイクロソフトはこの問題を Visual C++ 2015 と Visual C++ 2017 における不具合と認識しています。
</span>

<span style="font-family: メイリオ">この問題は、Visual Studio 2017 version 15.8 以降での修正を予定しています。
</span>

<span style="font-family: メイリオ">修正がリリースされましたら改めてこの記事でご案内します。</span>]]></content:encoded>
    </item>
    <item>
      <title>.NET Framework のネイティブ イメージが無効になる状況と考えられる影響について</title>
      <link>https://docs.microsoft.com/archive/blogs/jpvsblog/ngen</link>
      <pubDate>Mon, 07 May 2018 10:34:57 GMT</pubDate>
      <dc:creator><![CDATA[Visual Studio Support Team in Japan]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/jpvsblog/?p=2325</guid>
      <description><![CDATA[こんにちは、Visual Studio サポート チームです。


.NET Framework のライブラリは中間言語 (MSIL)...]]></description>
      <content:encoded><![CDATA[<span style="font-family: メイリオ">こんにちは、Visual Studio サポート チームです。
</span>

<span style="font-family: メイリオ">.NET Framework のライブラリは中間言語 (MSIL) 形式のアセンブリとして提供されていますが、これらは事前にコンパイルされるか、アプリケーションの実行時に JIT コンパイルされて機械語に変換され、プログラムから利用されます。
</span>

<span style="font-family: メイリオ">今回は、Windows Update の適用などに伴い .NET Framework のネイティブ イメージが無効になり再作成が行われる動作と、考えられる影響などについてご案内します。
</span>

&nbsp;

<span style="font-family: メイリオ"><strong><span style="font-size: 16pt">現象</span>
</strong></span>

<span style="font-family: メイリオ">Windows Update や .NET Framework の更新プログラムの適用後、.NET Framework を使用するアプリケーションやサービスの動作が遅くなる場合や、CPU 使用率が高騰する場合があります。</span>

<span style="font-family: メイリオ">PowerShell など、 .NET Framework 上で動作するスクリプトをホストするプロセスも同様の事象が発生する場合があります。
</span>

<span style="font-family: メイリオ">なお、下記の KB で案内しているとおり、32 ビットの .NET Framework に比べて 64 ビットの .NET Framework のほうが JIT コンパイルが必要となることに伴う影響は大きい傾向があります。
</span>
<p style="padding-left: 30px"><span style="font-family: メイリオ"> 64 ビットの .NET Framework アプリケーションの起動に時間がかかる
<a href="https://support.microsoft.com/ja-jp/help/2833666">https://support.microsoft.com/ja-jp/help/2833666</a>
</span></p>
&nbsp;

<span style="font-family: メイリオ">また、この事象は一般的には一時的なものですが、何らかの理由で常に高い負荷の状態となっているコンピューターでは長期にわたり解消されないことがあります。
</span>

&nbsp;

<span style="font-family: メイリオ"><strong><span style="font-size: 16pt">原因</span>
</strong></span>

<span style="font-family: メイリオ">Windows Update や .NET Framework の更新プログラムの適用でアセンブリが置き換わった場合、ネイティブ イメージとの不整合を避けるため、ネイティブ イメージは一旦無効な状態として扱われます。
</span>

<span style="font-family: メイリオ">このとき同時にネイティブ イメージの再作成がスケジュールされますが、実行はシステムのアイドル時に行われるため、再作成されるまでの間、アプリケーションの実行時は JIT コンパイルが必要となります。
</span>

<span style="font-family: メイリオ">この場合も、ネイティブ イメージでの動作と中間言語のアセンブリでの動作の間で、アプリケーションの実行結果に相違が生じることはありません。
</span>

<span style="font-family: メイリオ">ただし、JIT コンパイルの処理によって、アプリケーションの起動や実行が遅くなる場合や、プロセスの CPU 使用率やメモリ使用量が高くなる場合があります。
</span>

<span style="font-family: メイリオ">なお、Windows 10 および Windows Server 2016 では .NET Framework の更新プログラムは OS の更新プログラムとともにリリースされるため、OS の更新プログラムの適用時にもネイティブ イメージが無効となる可能性があります。
</span>

<span style="font-family: メイリオ">また、システムがアイドル状態とならないような常に高い負荷が続く状況ではネイティブ イメージの再作成が行われないため、自動的には JIT コンパイルが必要な状況が解消されません。
</span>

&nbsp;

<span style="font-family: メイリオ"><strong><span style="font-size: 16pt">対処方法</span>
</strong></span>

<span style="font-family: メイリオ">通常この現象は一時的なもので、システムがアイドル状態になった後自動的にネイティブ イメージが再作成されるため、特別な対処は必要ないことがほとんどです。
</span>

<span style="font-family: メイリオ">ネイティブ イメージが自動的に再作成されることを待たず直ちに再作成が必要となる場合、もしくは常に高い負荷が続く状況などで自動的な再作成が期待できない場合は、明示的にネイティブ イメージの再作成を行ってください。
</span>

<span style="font-family: メイリオ">明示的にネイティブ イメージの再作成を行うには、.NET Framework に含まれる ngen.exe を以下の手順で実行します。
</span>

&nbsp;

<span style="font-family: メイリオ">(1) 管理者権限でコマンド プロンプトを起動します。
</span>

<span style="font-family: メイリオ">(2) 下記の 2 つのコマンドを実行します。
</span>
<p style="padding-left: 30px"><span style="font-family: メイリオ">C:\Windows\Microsoft.NET\Framework\v4.0.30319\ngen.exe executeQueuedItems
</span></p>
<p style="padding-left: 30px"><span style="font-family: メイリオ">C:\Windows\Microsoft.NET\Framework\v4.0.30319\ngen.exe update
</span></p>
<span style="font-family: メイリオ">(3) 64 bit OS の場合は、続けて下記の 2 つのコマンドを実行します。
</span>
<p style="padding-left: 30px"><span style="font-family: メイリオ">C:\Windows\Microsoft.NET\Framework64\v4.0.30319\ngen.exe executeQueuedItems
</span></p>
<p style="padding-left: 30px"><span style="font-family: メイリオ">C:\Windows\Microsoft.NET\Framework64\v4.0.30319\ngen.exe update
</span></p>
&nbsp;

<span style="font-family: メイリオ">なお、上記コマンドの実行中はネイティブ イメージの生成のためシステムの負荷が高くなります。
</span>

<span style="font-family: メイリオ">実行が完了するまでの所要時間はインストールされているネイティブ イメージの状況に依存するため、あらかじめ検証可能な環境などで所要時間をご確認いただいた上で実施することをお勧めします。
</span>

&nbsp;

<span style="font-family: メイリオ"><strong><span style="font-size: 16pt">参考情報 – ネイティブ イメージについて</span>
</strong></span>

<span style="font-family: メイリオ">.NET Framework 上で動作するアセンブリには、CPU が直接実行できる命令ではなく、.NET Framework が実行時 (JIT : Just-in-Time) にコンパイルして CPU 命令に変換するための中間言語が含まれています。
</span>

<span style="font-family: メイリオ">JIT コンパイルはアプリケーションの起動や実行のパフォーマンスに影響を与える可能性があるため、その対処として予め CPU が直接実行できる命令にコンパイルしておくことも可能です。
</span>

<span style="font-family: メイリオ">予めコンパイルされたファイルをネイティブ イメージと呼び、 C:\windows\assembly フォルダー配下の NativeImages_v4.0.30319_32 フォルダーなどに、***.ni.dll という名称で保存されています。
</span>

<span style="font-family: メイリオ">ネイティブ イメージの生成には長時間を要するため、更新プログラムの適用により無効となった場合も再作成は同時には行われず、更新プログラムの適用後に実行するようにスケジュールされます。
</span>

<span style="font-family: メイリオ">また、ネイティブ イメージの生成は CPU やメモリ、ディスク IO などのリソースを多く使用するため、実行中のアプリケーションやサービスの動作に影響を与えないよう、システムがアイドル状態のときに実行されます。
</span>

<span style="font-family: メイリオ">ネイティブ イメージの詳細につきましては下記のドキュメントをご確認ください。
</span>
<p style="padding-left: 30px"><span style="font-family: メイリオ"> Ngen.exe (ネイティブ イメージ ジェネレーター)
<a href="https://docs.microsoft.com/ja-jp/dotnet/framework/tools/ngen-exe-native-image-generator">https://docs.microsoft.com/ja-jp/dotnet/framework/tools/ngen-exe-native-image-generator</a></span></p>]]></content:encoded>
    </item>
    <item>
      <title>プロジェクト参照を含むソリューションのビルド時に、変更のないプロジェクトに対してもリビルドが行われる</title>
      <link>https://docs.microsoft.com/archive/blogs/jpvsblog/projref-rebuild</link>
      <pubDate>Fri, 23 Mar 2018 22:10:08 GMT</pubDate>
      <dc:creator><![CDATA[Visual Studio Support Team in Japan]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/jpvsblog/?p=2285</guid>
      <description><![CDATA[こんにちは、Visual Studio サポート チームです。


今回は、Visual Studio...]]></description>
      <content:encoded><![CDATA[<span style="font-family: メイリオ">こんにちは、Visual Studio サポート チームです。
</span>

<span style="font-family: メイリオ">今回は、Visual Studio でソリューションをビルドする際のリビルドの動作に関して、ご留意いただきたい内容をご紹介します。
</span>

&nbsp;

<span style="font-family: メイリオ;font-size: 16pt"><strong>現象
</strong></span>

<span style="font-family: メイリオ">プロジェクト参照 (*1) を含むソリューションを Visual Studio で開き、ソリューション構成 (Debug/Release など) を切り替えてビルドを行うと、プロジェクトに変更が加えられていなくてもプロジェクトがリビルドされる場合があります。</span>

&nbsp;

<span style="font-family: メイリオ">(*1) "プロジェクト参照" とは、あるプロジェクトから、同一のソリューションに含まれる別のプロジェクトを参照する参照方法であり、被参照側プロジェクトに変更があると、そのプロジェクトだけでなく参照側のプロジェクトもビルドが必要とみなされます。複数のプロジェクトを 1 つのソリューションで同時に開発する場合に便利な参照形式です。
</span>

<span style="font-family: メイリオ">これに対し、DLL を直接参照する "アセンブリ参照" は、サードパーティから提供されている DLL や、社内共通の共通ライブラリとして提供されている DLL など、対象のプロジェクトと被参照 DLL が別々に開発される場合に利用される参照方法です。
</span>

&nbsp;

<span style="font-family: メイリオ"><span style="font-size: 16pt"><strong>原因</strong></span>
</span>

<span style="font-family: メイリオ">本現象は Visual Studio の想定された動作に基づく制限事項です。
</span>

<span style="font-family: メイリオ">プロジェクト参照を含むソリューションでは、Visual Studio がビルドの要否を判断するロジックの制約から、直前にビルドされたソリューション構成から変更が生じた場合に、プロジェクトを参照している側のプロジェクトに対してリビルドが行われます。(*2)
</span>

<span style="font-family: メイリオ">なお、"直前にビルドされたソリューション構成" の情報は、Visual Studio の起動中は Visual Studio 内に記憶され、Visual Studio の終了後は .suo ファイル (*3) に保持されます。ここで、.suo ファイルが存在しない状態では、"直前にビルドされたソリューション構成" としては既定の設定 (Debug) が適用されるため、.suo ファイルが存在しない状態で Release 構成のビルドを行うと、常に、"直前にビルドされたソリューション構成から変更が生じた" 状態と判断されるため、プロジェクト参照しているプロジェクトに対してリビルドが行われます。
</span>

<span style="font-family: メイリオ">このため、特に、直前に Release 構成でビルドを行った状態を保持した .suo ファイルが存在しない状態で、Visual Studio のコマンドライン ツールである devenv.exe を利用して Release 構成でソリューションのビルドを行うと、毎回、リビルドが行われてしまうといった状況が起こりえます。
</span>

&nbsp;

<span style="font-family: メイリオ">(*2) 本動作は Visual Studio 2017 より前のバージョンの Visual Studio で確認されています。Visual Studio 2017 では IDE 上からのビルドでは本動作は改善されています。
</span>

<span style="font-family: メイリオ">(*3) .suo ファイルは、Visual Studio の終了時に自動的に出力される隠しファイルで、ユーザーによる設定などの情報を保持しています。</span><span style="font-family: メイリオ">Visual Studio 2013 の場合は ***.v12.suo、Visual Studio 2015 の場合は拡張子のみで .suo といった形で、バージョンによってファイル名が異なります。
</span>

&nbsp;

<span style="font-family: メイリオ"><strong>&lt;実行例 : .suo ファイルなし&gt;</strong>
</span>

<span style="font-family: メイリオ">devenv.exe で Release 構成を指定して 2 回続けてビルドを行っていますが、更新不要とならずにビルドが実行されています。
</span>
<div>
<table style="border-collapse: collapse;background: black" border="0"><colgroup> <col style="width: 907px" /></colgroup>
<tbody valign="top">
<tr>
<td style="padding-left: 7px;padding-right: 7px;border: solid 0.5pt"><span style="color: white;font-family: Consolas">c:\temp\VS2013\ConsoleApplication1_vb2013&gt;devenv.exe /Build "Release|Any CPU" ConsoleApplication1_vb2013.sln
</span><span style="color: white"><span style="font-family: Consolas">Microsoft Visual Studio 2013 Version 12.0.40629.0</span><span style="font-family: メイリオ">。</span><span style="font-family: Consolas">
</span></span><span style="color: white;font-family: Consolas">Copyright (C) Microsoft Corp. All rights reserved.
</span><span style="color: white"><span style="font-family: Consolas">------ </span><span style="font-family: メイリオ">ビルド開始</span><span style="font-family: Consolas">: </span><span style="font-family: メイリオ">プロジェクト</span><span style="font-family: Consolas">:ConsoleApplication1_vb2013, </span><span style="font-family: メイリオ">構成</span><span style="font-family: Consolas">:Release Any CPU ------
</span></span>

<span style="color: white"><span style="font-family: Consolas">========== </span><span style="font-family: メイリオ">ビルド</span><span style="font-family: Consolas">: <span style="background-color: fuchsia">1 </span></span><span style="font-family: メイリオ"><span style="background-color: fuchsia">正常終了</span>、</span><span style="font-family: Consolas">0 </span><span style="font-family: メイリオ">失敗、</span><span style="font-family: Consolas">1 </span><span style="font-family: メイリオ">更新不要、</span><span style="font-family: Consolas">0 </span><span style="font-family: メイリオ">スキップ</span><span style="font-family: Consolas"> ==========
</span></span>

<span style="color: white;font-family: Consolas">c:\temp\VS2013\ConsoleApplication1_vb2013&gt;devenv.exe /Build "Release|Any CPU" ConsoleApplication1_vb2013.sln
</span>

<span style="color: white"><span style="font-family: Consolas">Microsoft Visual Studio 2013 Version 12.0.40629.0</span><span style="font-family: メイリオ">。</span><span style="font-family: Consolas">
</span></span>

<span style="color: white;font-family: Consolas">Copyright (C) Microsoft Corp. All rights reserved.
</span>

<span style="color: white"><span style="font-family: Consolas">------ </span><span style="font-family: メイリオ">ビルド開始</span><span style="font-family: Consolas">: </span><span style="font-family: メイリオ">プロジェクト</span><span style="font-family: Consolas">:ConsoleApplication1_vb2013, </span><span style="font-family: メイリオ">構成</span><span style="font-family: Consolas">:Release Any CPU ------
</span></span>

<span style="color: white"><span style="font-family: Consolas">========== </span><span style="font-family: メイリオ">ビルド</span><span style="font-family: Consolas">: <span style="background-color: fuchsia">1 </span></span><span style="font-family: メイリオ"><span style="background-color: fuchsia">正常終了</span>、</span><span style="font-family: Consolas">0 </span><span style="font-family: メイリオ">失敗、</span><span style="font-family: Consolas">1 </span><span style="font-family: メイリオ">更新不要、</span><span style="font-family: Consolas">0 </span><span style="font-family: メイリオ">スキップ</span><span style="font-family: Consolas"> ==========
</span></span></td>
</tr>
</tbody>
</table>
</div>
&nbsp;

<span style="font-family: メイリオ"><span style="font-size: 16pt"><strong>対処策</strong></span>
</span>

<span style="font-family: メイリオ">対象のソリューションを、一度、Visual Studio で開いて Release 構成でビルドし、Visual Studio を終了して .suo ファイルが出力された状態とすることで、devenv.exe を使用して Release 構成でビルドを行う場合でも、不要なリビルドを避けることができます。
</span>

<span style="font-family: メイリオ"><strong>&lt;実行例 : Release 構成でビルドして終了した際に出力された .suo ファイルあり&gt;</strong>
</span>
<div>
<table style="border-collapse: collapse;background: black" border="0"><colgroup> <col style="width: 907px" /></colgroup>
<tbody valign="top">
<tr>
<td style="padding-left: 7px;padding-right: 7px;border: solid 0.5pt"><span style="color: white;font-family: Consolas">c:\temp\VS2013\ConsoleApplication1_vb2013&gt;devenv.exe /Build "Release|Any CPU" ConsoleApplication1_vb2013.sln
</span><span style="color: white"><span style="font-family: Consolas">Microsoft Visual Studio 2013 Version 12.0.40629.0</span><span style="font-family: メイリオ">。</span><span style="font-family: Consolas">
</span></span><span style="color: white;font-family: Consolas">Copyright (C) Microsoft Corp. All rights reserved.
</span><span style="color: white"><span style="font-family: Consolas">========== </span><span style="font-family: メイリオ">ビルド</span><span style="font-family: Consolas">: 0 </span><span style="font-family: メイリオ">正常終了、</span><span style="font-family: Consolas">0 </span><span style="font-family: メイリオ">失敗、</span><span style="font-family: Consolas;background-color: lime">2 </span><span style="font-family: メイリオ"><span style="background-color: lime">更新不要</span>、</span><span style="font-family: Consolas">0 </span><span style="font-family: メイリオ">スキップ</span><span style="font-family: Consolas"> ==========
</span></span>

<span style="color: white;font-family: Consolas">c:\temp\VS2013\ConsoleApplication1_vb2013&gt;devenv.exe /Build "Release|Any CPU" ConsoleApplication1_vb2013.sln
</span>

<span style="color: white"><span style="font-family: Consolas">Microsoft Visual Studio 2013 Version 12.0.40629.0</span><span style="font-family: メイリオ">。</span><span style="font-family: Consolas">
</span></span>

<span style="color: white;font-family: Consolas">Copyright (C) Microsoft Corp. All rights reserved.
</span>

<span style="color: white"><span style="font-family: Consolas">========== </span><span style="font-family: メイリオ">ビルド</span><span style="font-family: Consolas">: 0 </span><span style="font-family: メイリオ">正常終了、</span><span style="font-family: Consolas">0 </span><span style="font-family: メイリオ">失敗、</span><span style="font-family: Consolas;background-color: lime">2 </span><span style="font-family: メイリオ"><span style="background-color: lime">更新不要</span>、</span><span style="font-family: Consolas">0 </span><span style="font-family: メイリオ">スキップ</span><span style="font-family: Consolas"> ==========
</span></span></td>
</tr>
</tbody>
</table>
</div>
&nbsp;

<span style="font-family: メイリオ">プロジェクトの規模が大きくできる限り不要なリビルドを避けたい場合など、上記内容がお役に立てましたら幸いです。
</span>]]></content:encoded>
    </item>
    <item>
      <title>Visual C++ 2015 以降のバージョンの再頒布可能パッケージにおけるインストールの前提条件</title>
      <link>https://docs.microsoft.com/archive/blogs/jpvsblog/ucrt-prerequisite</link>
      <pubDate>Tue, 27 Feb 2018 20:49:57 GMT</pubDate>
      <dc:creator><![CDATA[Visual Studio Support Team in Japan]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/jpvsblog/?p=2275</guid>
      <description><![CDATA[こんにちは、Visual Studio サポート チームです。


今回は、最近多くのお客様からお問い合わせをいただいている Visual C++...]]></description>
      <content:encoded><![CDATA[<span style="font-family: メイリオ">こんにちは、Visual Studio サポート チームです。
</span>

<span style="font-family: メイリオ">今回は、最近多くのお客様からお問い合わせをいただいている Visual C++ 再頒布可能パッケージのインストールに必要な前提条件についてご案内します。
</span>

&nbsp;

<span style="font-family: メイリオ">以前の<a href="https://blogs.msdn.microsoft.com/jpvsblog/2016/08/04/ucrt_local_deployment/">ブログ記事</a>でもご案内していますが、Visual C++ 2015 以降のバージョンの C ランタイム (CRT) は、汎用 C ランタイム (UCRT : Universal C Runtime) とそれ以外のランタイムで構成されています。Visual C++ 2015 再頒布可能パッケージをインストールすると、これらのランタイムがすべてインストールされます。
</span>

<span style="font-family: メイリオ">ここで、UCRT は Windows 10 以降の OS は既定でインストールされているものになりますが、Windows 10 より前の OS にインストールするためには、対象の環境に前提となる KB が適用されている必要があります。</span>

<span style="font-family: メイリオ">このため、例えば、新規にセットアップしたばかりの Windows 8.1 に Visual C++ 2015 再頒布可能パッケージをインストールしようとすると、UCRT の前提条件となる KB が適用されていないために、インストール エラーとなることが想定されます。
</span>

<span style="font-family: メイリオ">Visual C++ 2015 以降のバージョンの再頒布可能パッケージをインストールされるご利用者様や、製品に再頒布可能パッケージを含めることをご検討されている開発者様は、KB の事前インストールが必要となる可能性がある点についてご注意ください。
</span>
<p style="padding-left: 30px"><img class="aligncenter" alt="" src="https://msdnshared.blob.core.windows.net/media/2018/02/022718_1138_VisualC20151.png" /></p>
&nbsp;

<span style="font-family: メイリオ">なお、OS の更新プログラムがロールアップ モデルに移行したことに伴い、UCRT や、UCRT の前提となる KB も最新の累積更新プログラムに含まれています。このため、Windows 7 や Windows 8.1 の環境でも、Windows Update で最新の状態としていただけましたら UCRT もインストールされた状態となり、Visual C++ 2015 再頒布可能パッケージをインストールしていただくことが可能となります。
</span>

<span style="font-family: メイリオ">この他、Windows Update によって既に UCRT が適用されている環境に対して、UCRT を単独でインストールしようとした場合に、既にインストール済みであるために発生するエラーについてお問い合わせいただくことがありますが、その場合は UCRT を改めてインストールしていただく必要はありませんのでご安心ください。
</span>

<span style="font-family: メイリオ">上記のとおり、インストール対象の PC が Windows Update で最新の状態になっている場合は、UCRT や前提 KB のインストールを意識する必要はありません。そうでない場合は、UCRT のインストールに必要となる前提について、以下の内容をご確認ください。
</span>

&nbsp;

<span style="font-family: メイリオ"><strong><span style="font-size: 14pt">Windows 10 および Windows Server 2016 以降の OS の場合</span>
</strong></span>

<span style="font-family: メイリオ"> このバージョンは UCRT がインストール済みのため、対応は特に必要ありません。
</span>

&nbsp;

<span style="font-family: メイリオ"><strong><span style="font-size: 14pt">Windows RT 8.1、Windows 8.1 および Windows Server 2012 R2 の場合</span>
</strong></span>

<span style="font-family: メイリオ">1. もし、KB2919442 が適用されていない場合には、適用します。
</span>
<p style="margin-left: 11pt"><span style="font-family: メイリオ">KB2919442: 3 月の 2014 年まで Windows 8.1 および Windows Server 2012 R2 の更新プログラムのサービスを提供
<a href="https://support.microsoft.com/ja-jp/help/2919442/march-2014-servicing-stack-update-for-windows-8-1-and-windows-server-2">https://support.microsoft.com/ja-jp/help/2919442/march-2014-servicing-stack-update-for-windows-8-1-and-windows-server-2</a>
</span></p>
&nbsp;

<span style="font-family: メイリオ">2. 続いて KB2919355 を適用します。
</span>
<p style="margin-left: 11pt"><span style="font-family: メイリオ">KB2919355: Windows RT 8.1、Windows 8.1、および Windows Server 2012 R2 の更新プログラム: 2014 年 4 月
<a href="https://support.microsoft.com/ja-jp/help/2919355/windows-rt-8-1--windows-8-1--and-windows-server-2012-r2-update-april-2">https://support.microsoft.com/ja-jp/help/2919355/windows-rt-8-1--windows-8-1--and-windows-server-2012-r2-update-april-2</a>
</span></p>
&nbsp;

<span style="font-family: メイリオ;font-size: 14pt"><strong>Windows 7 および Windows Server 2008 R2 の場合
</strong></span>

<span style="font-family: メイリオ">Windows 7 Service Pack 1 および Windows Server 2008 R2 Service Pack 1 が適用されていない場合は、以下よりダウンロードし適用してください。
</span>
<p style="margin-left: 11pt"><span style="font-family: メイリオ">Windows 7 Service Pack 1 および Windows Server 2008 R2 Service Pack 1 に関する情報
<a href="https://support.microsoft.com/ja-jp/help/976932/information-about-service-pack-1-for-windows-7-and-for-windows-server">https://support.microsoft.com/ja-jp/help/976932/information-about-service-pack-1-for-windows-7-and-for-windows-server</a>
</span></p>
&nbsp;

<span style="font-family: メイリオ"><strong><span style="font-size: 14pt">Windows Server 2008 の場合</span>
</strong></span>

<span style="font-family: メイリオ">Windows Server 2008 Service Pack 2 が適用されていない場合は、以下よりダウンロードし適用してください。
</span>
<p style="margin-left: 11pt"><span style="font-family: メイリオ">Windows Vista Service Pack 2 および Windows Server 2008 Service Pack 2 に関する情報
<a href="https://support.microsoft.com/ja-jp/help/948465/information-about-service-pack-2-for-windows-vista-and-for-windows-ser">https://support.microsoft.com/ja-jp/help/948465/information-about-service-pack-2-for-windows-vista-and-for-windows-ser</a>
</span></p>]]></content:encoded>
    </item>
    <item>
      <title>ClickOnce アプリケーションのインストールや更新の後に発生する場合があるアプリケーション起動時のエラーについて</title>
      <link>https://docs.microsoft.com/archive/blogs/jpvsblog/clickonce-error</link>
      <pubDate>Tue, 20 Feb 2018 10:29:48 GMT</pubDate>
      <dc:creator><![CDATA[Visual Studio Support Team in Japan]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/jpvsblog/?p=2245</guid>
      <description><![CDATA[こんにちは、Visual Studio サポート チームです。


今回は、ClickOnce...]]></description>
      <content:encoded><![CDATA[<span style="font-family: メイリオ">こんにちは、Visual Studio サポート チームです。
</span>

<span style="font-family: メイリオ">今回は、ClickOnce アプリケーションのインストールや更新後に発生する場合がある、アプリケーション起動時のエラーとその対処方法についてご案内します。</span>

<span style="font-family: メイリオ">当ブログの下記の記事でも ClickOnce アプリケーションの起動時のエラーについて取り扱っていますが、今回は、この他によくお問い合わせをいただく既知の問題についてご案内しています。
</span>
<p style="margin-left: 22pt"><span style="font-family: メイリオ">ClickOnce 起動時のエラーについて
<a href="https://blogs.msdn.microsoft.com/jpvsblog/2011/08/05/clickonce/">https://blogs.msdn.microsoft.com/jpvsblog/2011/08/05/clickonce/</a>
</span></p>
&nbsp;

<span style="font-family: メイリオ;font-size: 16pt"><strong>現象</strong></span>

<span style="font-family: メイリオ">ClickOnce アプリケーションをインストールした場合や更新した場合に、以下のようなエラー ダイアログが表示され、アプリケーションの起動に失敗する場合があります。
</span>
<p style="padding-left: 60px"><span style="font-family: メイリオ"><a href="https://msdnshared.blob.core.windows.net/media/2018/02/clickonce_error.png"><img width="366" height="155" class="alignnone size-full wp-image-2255" alt="" src="https://msdnshared.blob.core.windows.net/media/2018/02/clickonce_error.png" /></a>
</span></p>
<span style="font-family: メイリオ">"詳細" ボタンを押下すると、エラーの状況に応じて以下のようなエラーの詳細が記録されている場合があります。</span>

<span style="font-family: メイリオ"><span style="font-family: メイリオ">※ 当記事の原因に該当する場合、多くのケースではスタック トレース上に ComponentStore.ActivateApplication が現れますが、スタック トレースの内容など詳細は .NET Framework のバージョンにより異なる可能性がございます。また、代表的なエラー メッセージを挙げており、すべてのパターンを網羅するものではございませんので予めご了承ください。</span></span>

<span style="font-family: メイリオ"><span style="font-family: メイリオ">
<span style="font-family: メイリオ"><strong>必要なレジストリ キーが見つからなかった場合
</strong></span></span></span>
<p style="background: #f2f2f2"><span style="font-family: メイリオ">この操作中に次のエラーが検出されました。</span><span style="font-family: Consolas">
* [2018/02/19 14:35:33] System.ArgumentException
- </span><span style="font-family: メイリオ;background-color: yellow">値が有効な範囲にありません。</span><span style="font-family: Consolas"><span style="background-color: yellow">
</span>- </span><span style="font-family: メイリオ">ソース</span><span style="font-family: Consolas">:System.Deployment
- </span><span style="font-family: メイリオ">スタック</span><span style="font-family: Consolas"> </span><span style="font-family: メイリオ">トレース</span><span style="font-family: Consolas">:
</span><span style="font-family: メイリオ">場所</span><span style="font-family: Consolas"> System.Deployment.Application.NativeMethods.CorLaunchApplication
</span><span style="font-family: メイリオ">場所</span><span style="font-family: Consolas"> System.Deployment.Application.ComponentStore.ActivateApplication
</span><span style="font-family: メイリオ">場所</span><span style="font-family: Consolas"> System.Deployment.Application.SubscriptionStore.ActivateApplication
</span><span style="font-family: メイリオ">場所</span><span style="font-family: Consolas"> System.Deployment.Application.ApplicationActivator.Activate
</span><span style="font-family: メイリオ">場所</span><span style="font-family: Consolas"> System.Deployment.Application.ApplicationActivator.PerformDeploymentActivation
</span><span style="font-family: メイリオ">場所</span><span style="font-family: Consolas"> System.Deployment.Application.ApplicationActivator.ActivateDeploymentWorker
</span></p>

<div style="text-align: justify"><span style="font-family: メイリオ"><strong>ClickOnce キャッシュのマニフェスト ファイルが破損していた場合
</strong></span></div>
<p style="background: #f2f2f2"><span style="font-family: メイリオ">この操作中に次のエラーが検出されました。</span><span style="font-family: Consolas">
* [2018/02/19 14:33:55] System.Deployment.Application.DeploymentException (Activation)
- <span style="background-color: yellow">Windows Side-by-Side </span></span><span style="font-family: メイリオ"><span style="background-color: yellow">エラーにより認証に失敗しました。</span>イベント </span><span style="font-family: メイリオ">ログにこの失敗に関する詳細が含まれている可能性があります。</span><span style="font-family: Consolas">
- </span><span style="font-family: メイリオ">ソース</span><span style="font-family: Consolas">:System.Deployment
- </span><span style="font-family: メイリオ">スタック </span><span style="font-family: メイリオ">トレース</span><span style="font-family: Consolas">:
</span><span style="font-family: メイリオ">場所</span><span style="font-family: Consolas"> System.Deployment.Application.ComponentStore.ActivateApplication
</span><span style="font-family: メイリオ">場所</span><span style="font-family: Consolas"> System.Deployment.Application.SubscriptionStore.ActivateApplication
</span><span style="font-family: メイリオ">場所</span><span style="font-family: Consolas"> System.Deployment.Application.ApplicationActivator.Activate
</span><span style="font-family: メイリオ">場所</span><span style="font-family: Consolas"> System.Deployment.Application.ApplicationActivator.PerformDeploymentActivation
</span><span style="font-family: メイリオ">場所</span><span style="font-family: Consolas"> System.Deployment.Application.ApplicationActivator.ActivateDeploymentWorker
--- </span><span style="font-family: メイリオ">内部例外</span><span style="font-family: Consolas"> ---
System.Runtime.InteropServices.COMException
- </span><span style="font-family: メイリオ">このアプリケーションのサイド</span><span style="font-family: Consolas"> </span><span style="font-family: メイリオ">バイ</span><span style="font-family: Consolas"> </span><span style="font-family: メイリオ">サイド構成が正しくないため、アプリケーションを開始できませんでした。詳細については、アプリケーションのイベント </span><span style="font-family: メイリオ">ログを参照するか、コマンド</span><span style="font-family: Consolas"> </span><span style="font-family: メイリオ">ライン</span><span style="font-family: Consolas"> </span><span style="font-family: メイリオ">ツール</span><span style="font-family: Consolas"> sxstrace.exe </span><span style="font-family: メイリオ">を使用してください。</span><span style="font-family: Consolas"> (HRESULT </span><span style="font-family: メイリオ">からの例外</span><span style="font-family: Consolas">:0x800736B1)
- </span><span style="font-family: メイリオ">ソース</span><span style="font-family: Consolas">:System.Deployment
- </span><span style="font-family: メイリオ">スタック </span><span style="font-family: メイリオ">トレース</span><span style="font-family: Consolas">:
</span><span style="font-family: メイリオ">場所</span><span style="font-family: Consolas"> System.Deployment.Application.NativeMethods.CorLaunchApplication
</span><span style="font-family: メイリオ">場所</span><span style="font-family: Consolas"> System.Deployment.Application.ComponentStore.ActivateApplication
</span></p>

<div style="text-align: justify"><span style="font-family: メイリオ"><strong>ClickOnce キャッシュのファイルが部分的に欠落している場合</strong></span></div>
<p style="background: #f2f2f2"><span style="font-family: メイリオ">この操作中に次のエラーが検出されました。</span><span style="font-family: Consolas">
* [2018/02/19 14:28:20] System.Deployment.Application.DeploymentException (Activation)
- </span><span style="font-family: メイリオ;background-color: yellow">ライセンス認証に失敗しました。</span><span style="font-family: Consolas"><span style="background-color: yellow">
</span>- </span><span style="font-family: メイリオ">ソース</span><span style="font-family: Consolas">:System.Deployment
- </span><span style="font-family: メイリオ">スタック </span><span style="font-family: メイリオ">トレース</span><span style="font-family: Consolas">:
</span><span style="font-family: メイリオ">場所</span><span style="font-family: Consolas"> System.Deployment.Application.ComponentStore.ActivateApplication
</span><span style="font-family: メイリオ">場所</span><span style="font-family: Consolas"> System.Deployment.Application.SubscriptionStore.ActivateApplication
</span><span style="font-family: メイリオ">場所</span><span style="font-family: Consolas"> System.Deployment.Application.ApplicationActivator.Activate
</span><span style="font-family: メイリオ">場所</span><span style="font-family: Consolas"> System.Deployment.Application.ApplicationActivator.PerformDeploymentActivation
</span><span style="font-family: メイリオ">場所</span><span style="font-family: Consolas"> System.Deployment.Application.ApplicationActivator.ActivateDeploymentWorker
--- </span><span style="font-family: メイリオ">内部例外</span><span style="font-family: Consolas"> ---
System.IO.FileNotFoundException
- </span><span style="font-family: メイリオ;background-color: yellow">指定されたファイルが見つかりません。</span><span style="font-family: Consolas"> (HRESULT </span><span style="font-family: メイリオ">からの例外</span><span style="font-family: Consolas">:0x80070002)
- </span><span style="font-family: メイリオ">ソース</span><span style="font-family: Consolas">:System.Deployment
- </span><span style="font-family: メイリオ">スタック </span><span style="font-family: メイリオ">トレース</span><span style="font-family: Consolas">:
</span><span style="font-family: メイリオ">場所</span><span style="font-family: Consolas"> System.Deployment.Application.NativeMethods.CorLaunchApplication
</span><span style="font-family: メイリオ">場所</span><span style="font-family: Consolas"> System.Deployment.Application.ComponentStore.ActivateApplication
</span></p>

<div style="text-align: justify"><span style="font-family: メイリオ"><strong>ClickOnce キャッシュの EXE ファイルが破損していた場合
</strong></span></div>
<p style="background: #f2f2f2"><span style="font-family: メイリオ">この操作中に次のエラーが検出されました。</span><span style="font-family: Consolas">
* [2018/02/19 14:31:41] System.BadImageFormatException
-  </span><span style="font-family: メイリオ;background-color: yellow">は有効な</span><span style="font-family: Consolas;background-color: yellow"> Win32 </span><span style="font-family: メイリオ;background-color: yellow">アプリケーションではありません。</span><span style="font-family: Consolas"> (HRESULT </span><span style="font-family: メイリオ">からの例外</span><span style="font-family: Consolas">:0x800700C1)
- </span><span style="font-family: メイリオ">ソース</span><span style="font-family: Consolas">:System.Deployment
- </span><span style="font-family: メイリオ">スタック</span><span style="font-family: Consolas"> </span><span style="font-family: メイリオ">トレース</span><span style="font-family: Consolas">:
</span><span style="font-family: メイリオ">場所</span><span style="font-family: Consolas"> System.Deployment.Application.NativeMethods.CorLaunchApplication
</span><span style="font-family: メイリオ">場所</span><span style="font-family: Consolas"> System.Deployment.Application.ComponentStore.ActivateApplication
</span><span style="font-family: メイリオ">場所</span><span style="font-family: Consolas"> System.Deployment.Application.SubscriptionStore.ActivateApplication
</span><span style="font-family: メイリオ">場所</span><span style="font-family: Consolas"> System.Deployment.Application.ApplicationActivator.Activate
</span><span style="font-family: メイリオ">場所</span><span style="font-family: Consolas"> System.Deployment.Application.ApplicationActivator.PerformDeploymentActivation
</span><span style="font-family: メイリオ">場所</span><span style="font-family: Consolas"> System.Deployment.Application.ApplicationActivator.ActivateDeploymentWorker
</span></p>
&nbsp;

<span style="font-family: メイリオ;font-size: 16pt"><strong>原因</strong></span>

<span style="font-family: メイリオ">ClickOnce はアプリケーションの情報や構成を、ユーザー プロファイル配下のファイルとレジストリの両方で管理しています。
</span>
<p style="margin-left: 22pt"><span style="font-family: メイリオ">ユーザー プロファイル : %userprofile%\AppData\Local\Apps\2.0
レジストリ キー : HKEY_CURRENT_USER\Software\Classes\Software\Microsoft\Windows\CurrentVersion\Deployment\SideBySide\2.0
</span></p>
&nbsp;

<span style="font-family: メイリオ">何らかの理由によりこれらの整合性に問題が生じた場合、ClickOnce アプリケーションはエラーにより起動できない状態となります。ファイルとレジストリの整合性に問題が生じる状況となる原因としては、例えば下記のような状況が考えられます。</span>
<ul>
 	<li><span style="font-family: メイリオ">ClickOnce アプリケーションのインストールまたは更新中に、電源障害などによる予期しないシャットダウンが発生した場合</span></li>
 	<li><span style="font-family: メイリオ">ClickOnce アプリケーションのインストールまたは更新中に、コンピューターの電源を切るなどによる予期しないログオフが発生した場合</span></li>
 	<li><span style="font-family: メイリオ">ClickOnce アプリケーションのインストールまたは更新中に、ClickOnce ローダー プロセス (dfsvc.exe) が強制終了した場合や未知の問題などで異常終了した場合</span></li>
 	<li><span style="font-family: メイリオ">バックアップ ソフトウェアなどの復元機能で、レジストリもしくはファイルのみに対して復元が行われた場合</span></li>
 	<li><span style="font-family: メイリオ">移動プロファイルが使用されている場合 (ClickOnce は移動プロファイルをサポートしていません。)</span></li>
 	<li><span style="font-family: メイリオ">ウィルス対策ソフトウェアなどが、ファイルやレジストリのアクセスを阻害した場合や問題があるファイルとして除去された場合
</span></li>
</ul>
&nbsp;

<span style="font-family: メイリオ">整合性に問題が生じる状況に至った原因は、ファイルとレジストリの整合性に問題が生じた後に得られる情報 (ClickOnce ログや、ユーザー プロファイルやレジストリ配下の ClickOnce キャッシュ一式など) から調査を進めることは困難です。このため、ファイルやレジストリに不整合が生じる事象を再現させ、引き金となったプロセスの処理などを解析して特定する必要があります。もし特定の手順で問題が再現できる場合には、Visual Studio サポート チームで調査させていただきますので弊社へお問い合わせください。
</span>

<span style="font-family: メイリオ">なお、この種のエラーについては ClickOnce アプリケーション側に何等かの問題があるわけではなく、対象の環境で利用されているサードパーティ製品の動作や予期しない操作などに起因していることがほとんどです。アプリケーション側の実装や配置の仕方で対処することはできませんので、この問題が発生した場合には後述の対処方法を実施して復旧することをご検討ください。万が一対処方法を実施して解決しない場合には、ClickOnce キャッシュの破損以外の原因が考えられるため、下記の情報を取得していただき弊社へお問い合わせください。</span>
<ul>
 	<li style="text-align: justify"><span style="font-family: メイリオ">ClickOnce 詳細ログ (<a href="https://docs.microsoft.com/ja-jp/visualstudio/deployment/how-to-specify-verbose-log-files-for-clickonce-deployments">https://docs.microsoft.com/ja-jp/visualstudio/deployment/how-to-specify-verbose-log-files-for-clickonce-deployments</a> でご案内しております。)
</span></li>
 	<li style="text-align: justify"><span style="font-family: メイリオ">%userprofile%\AppData\Local\Apps\2.0 フォルダー配下一式 </span></li>
 	<li style="text-align: justify"><span style="font-family: メイリオ">HKEY_CURRENT_USER\Software\Classes\Software\Microsoft\Windows\CurrentVersion\Deployment\SideBySide\2.0 配下のレジストリ キー一式
</span></li>
</ul>
&nbsp;

<span style="font-family: メイリオ"><strong><span style="font-size: 16pt">対処方法について</span></strong></span>

<span style="font-family: メイリオ">オフラインでも実行可能なアプリケーションの場合は、アプリケーションを一度アンインストールして再度インストールを行ってください。オンラインのみで実行可能なアプリケーションの場合、もくしは上記で解消されない場合は、ユーザー プロファイル配下の ClickOnce キャッシュを削除してください。(レジストリ キーを削除する必要はありません。)
</span>

<span style="font-family: メイリオ">なお、恐れ入りますが特定のアプリケーションのみの ClickOnce キャッシュを選択して削除することは出来ません。ClickOnce キャッシュの削除後は、問題が発生しているアプリケーション以外の他のアプリケーションの再インストールも必要となりますが、各アプリケーションの起動を試みた際に自動的に再インストールが行われますのでご安心ください。再インストールが必要となる場合は、インストール確認画面が表示される場合がございますので、この点はご注意ください。
</span>

&nbsp;

<span style="font-family: メイリオ"><strong><span style="font-size: 16pt">参考情報</span></strong></span>

<span style="font-family: メイリオ">英語の公開技術情報となりますが、ClickOnce アプリケーションの更新の失敗についての原因と対処については以下の KB でもご案内しておりますので、あわせてご確認ください。
</span>
<p style="margin-left: 22pt"><span style="font-family: メイリオ">ClickOnce Application Fails to Update
<a href="https://support.microsoft.com/en-us/help/2713442/clickonce-application-fails-to-update">https://support.microsoft.com/en-us/help/2713442/clickonce-application-fails-to-update</a>
</span></p>
&nbsp;

<span style="font-family: メイリオ">なお、弊社では ClickOnce アプリケーションの堅牢性の向上について継続して取り組んでおり、.NET Framework 4.7 以降では ClickOnce キャッシュの破損を検出した場合に自動的に復元を試みる機能を追加しております。現状では ClickOnce キャッシュの破損により発生するエラーのすべてを回復できるものではございませんが、より新しいバージョンの .NET Framework をご利用いただくこともご検討いただけますと幸いです。ClickOnce キャッシュ破損の回復機能については下記のブログでご案内しておりますので、あわせてご確認ください。
</span>
<p style="margin-left: 22pt"><span style="font-family: メイリオ">Announcing the .NET Framework 4.7 - Store Corruption Recovery
<a href="https://blogs.msdn.microsoft.com/dotnet/2017/04/05/announcing-the-net-framework-4-7/">https://blogs.msdn.microsoft.com/dotnet/2017/04/05/announcing-the-net-framework-4-7/</a>
</span></p>
<span style="font-family: メイリオ">
</span>]]></content:encoded>
    </item>
    <item>
      <title>OLE パッケージ オブジェクトを含むドキュメントを開くと GDI オブジェクトが増加する</title>
      <link>https://docs.microsoft.com/archive/blogs/jpvsblog/olepackage-gdi</link>
      <pubDate>Fri, 16 Feb 2018 22:11:17 GMT</pubDate>
      <dc:creator><![CDATA[Visual Studio Support Team in Japan]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/jpvsblog/?p=2225</guid>
      <description><![CDATA[こんにちは、Visual Studio サポート チームです。


今回は、OLE パッケージ...]]></description>
      <content:encoded><![CDATA[<span style="font-family: メイリオ">こんにちは、Visual Studio サポート チームです。
</span>

<span style="font-family: メイリオ">今回は、OLE パッケージ オブジェクトをプログラムから利用した場合に発生する問題についてご案内します。
</span>

&nbsp;

<span style="font-family: メイリオ;font-size: 14pt"><strong>現象
</strong></span>

<span style="font-family: メイリオ">アプリケーションから OLE パッケージ オブジェクト (*1) を含むドキュメントを開いて閉じる操作を繰り返すと、アプリケーションの GDI オブジェクトの使用量が増加します。
</span>

<span style="font-family: メイリオ">増加量は僅かであるため、ほとんどのアプリケーションではこの問題が影響することはありませんが、パッケージ オブジェクトを含むドキュメントを、開いて閉じる動作を繰り返すようなアプリケーションでは、GDI オブジェクトの総量がプロセスごとに割り当てられた上限 (既定で 10,000) に達し、それ以降の GDI オブジェクトの生成に失敗して描画処理に問題が生じる場合があります。
</span>

&nbsp;

<span style="font-family: メイリオ">(*1) パッケージ オブジェクトは、他のファイルやプログラムなどを OLE オブジェクトとしてドキュメントに挿入できるようにするためのオブジェクトです。
</span>

&nbsp;
<p style="text-align: center"><img width="359" height="223" alt="" src="https://msdnshared.blob.core.windows.net/media/2018/02/021618_1304_OLE1.png" /><span style="font-family: メイリオ">
</span></p>
<p style="text-align: center"><span style="font-family: メイリオ;text-decoration: underline"><strong>パッケージ オブジェクトの挿入</strong></span></p>
<span style="font-family: メイリオ;font-size: 14pt"><strong>原因</strong></span>

<span style="font-family: メイリオ">本現象は、OLE パッケージ オブジェクトを管理する Windows OS のパッケージ管理コンポーネント (packager.dll) の不具合に起因するものです。
</span>

<span style="font-family: メイリオ">本コンポーネントでは、パッケージ オブジェクトごとにタイトルを表示するためのフォント オブジェクトを生成しますが、ドキュメントを閉じてもこのフォント オブジェクトが解放されないため、ドキュメントを開いて閉じる操作を繰り返すとフォント オブジェクト (GDI オブジェクト) が増加し続ける結果となります。
</span>

&nbsp;

<span style="font-family: メイリオ;font-size: 14pt"><strong>対応状況
</strong></span>

<span style="font-family: メイリオ">マイクロソフトでは米国本社の開発部門でも本不具合を確認していますが、現時点では修正プログラムなどは提供されておらず、提供の予定はありません。
</span>

<span style="font-family: メイリオ">パッケージ オブジェクトは OLE 1.0 で導入されましたが、本不具合に起因する問題の報告がこれまでなかったことや、修正を行った場合の影響範囲の大きさなどを考慮して、修正が見送られている状況です。
</span>

<span style="font-family: メイリオ">ご利用のお客様にはご不便をおかけいたしまことお詫び申し上げます。
</span>

&nbsp;

<span style="font-family: メイリオ;font-size: 14pt"><strong>対処策
</strong></span>

<span style="font-family: メイリオ">前述のとおり、GDI オブジェクトの増加量は僅かであるため、ほとんどのアプリケーションでは特別な対応は必要ありません。
</span>

<span style="font-family: メイリオ">プロセスを再起動せずに、パッケージ オブジェクトを含むドキュメントを頻繁に開いて閉じるようなアプリケーションでは、対策が必要となる場合があります。
</span>

<span style="font-family: メイリオ">ここで、パッケージ管理コンポーネントが内部で使用しているものであることから、アプリケーション側からこれを解放することはできず、本不具合による GDI オブジェクトの増加を抑止することはできません。このため、GDI オブジェクトの総数が、プロセスに割り当てられている GDI オブジェクト数の上限値 (既定値 10,000) に達する前の段階で、プロセスを安全に再起動させたり、ユーザーにアプリケーションの再起動を促すような対応をご検討ください。
</span>

&nbsp;

<span style="font-family: メイリオ;font-size: 14pt"><strong>参考情報
</strong></span>

<span style="font-family: メイリオ">プロセスが使用している GDI オブジェクトの数は、GetGuiResources 関数を使用して取得可能です。GetGuiResources 関数の詳細については以下のドキュメントをご参照ください。
</span>
<p style="padding-left: 30px"><span style="font-family: メイリオ"> GetGuiResources function
(英語原文) <a href="https://msdn.microsoft.com/en-us/library/windows/desktop/ms683192(v=vs.85).aspx">https://msdn.microsoft.com/en-us/library/windows/desktop/ms683192(v=vs.85).aspx</a>
(日本語訳) <a href="https://msdn.microsoft.com/ja-jp/library/cc429120.aspx">https://msdn.microsoft.com/ja-jp/library/cc429120.aspx</a>
</span></p>
&nbsp;

<span style="font-family: メイリオ">また、プロセスごとに割り当て可能な GDI オブジェクトの数の上限は既定で 10,000 となっています。GDI オブジェクトの上限に関しては、以下のドキュメントをご参照ください。
</span>
<p style="padding-left: 30px"><span style="font-family: メイリオ"> Windows の限界に挑む: USER オブジェクトと GDI オブジェクト – 第 2 部
<a href="https://technet.microsoft.com/ja-jp/windows/mark_17.aspx">https://technet.microsoft.com/ja-jp/windows/mark_17.aspx</a>
</span></p>]]></content:encoded>
    </item>
    <item>
      <title>以前のバージョンの Visual Studio 2017 インストーラーについて</title>
      <link>https://docs.microsoft.com/archive/blogs/jpvsblog/vs2017-previous-installer</link>
      <pubDate>Fri, 15 Dec 2017 08:29:22 GMT</pubDate>
      <dc:creator><![CDATA[Visual Studio Support Team in Japan]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/jpvsblog/?p=2206</guid>
      <description><![CDATA[こんにちは、Visual Studio サポート チームです。


Visual Studio 2017 も先日バージョン 15.5 が公開されました！...]]></description>
      <content:encoded><![CDATA[<span style="font-family: メイリオ">こんにちは、Visual Studio サポート チームです。
</span>

<span style="font-family: メイリオ">Visual Studio 2017 も先日バージョン 15.5 が<a href="https://www.visualstudio.com/en-us/news/releasenotes/vs2017-relnotes">公開されました</a>！ (※2017/12現在)
</span>

<span style="font-family: メイリオ">弊社としては、不具合の修正やセキュリティの強化が適用されている最新版のご利用を推奨しており、製品サポートも基本的には最新版にて承っています。
</span>

&nbsp;

<span style="font-family: メイリオ">しかしながら、様々なご事情で以前のバージョンを入手したいというお問い合わせもいただいており、このようなご要望を受け、その時点でリリースされている「最新バージョンのひとつ前のバージョン」をご利用いただけるように以下のページで公開しています。</span>
<p style="padding-left: 30px"><span style="font-family: メイリオ">Installing an earlier release of Visual Studio 2017
<a href="https://www.visualstudio.com/en-us/productinfo/installing-an-earlier-release-of-vs2017">https://www.visualstudio.com/en-us/productinfo/installing-an-earlier-release-of-vs2017</a>
<span>※ 新しいバージョンがリリースされた場合には公開バージョンが変更されますのでご留意ください。</span>
</span></p>
&nbsp;

<span style="font-family: メイリオ">なお、各バージョンのインストール パッケージを保存される場合には注意が必要です！
</span>

<span style="font-family: メイリオ">Visual Studio 2017 のインストーラーは、インターネット上から最新版のパッケージをダウンロードしてインストールする仕組みとなっています。このため、以前のバージョンのインストーラーを保存してあっても、インストール実行時には最新版のパッケージが取得されます。
</span>

<span style="font-family: メイリオ">これを防ぐためには、インストーラーのみを保存しておくのではなく、その時点のバージョンのオフライン パッケージを作成しておく必要があります。お手数とはなりますが、特定バージョンの Visual Studio 2017 インストーラーを保存されたい場合には、予め以下の手順でオフライン インストーラーを作成してくださいますようお願いいたします。
</span>

&nbsp;

<span style="font-family: メイリオ"><strong>特定バージョンのオフラインインストーラーの作成手順</strong>
</span>

<span style="font-family: メイリオ">オフライン インストーラーの作成手順は以下のページでもご案内しています。</span>
<p style="padding-left: 30px"><span style="font-family: メイリオ"> </span><span style="font-family: メイリオ">Visual Studio 2017 のネットワーク インストールを作成する
<a href="https://docs.microsoft.com/ja-jp/visualstudio/install/create-a-network-installation-of-visual-studio#how-to-create-a-layout-for-a-previous-visual-studio-2017-release">https://docs.microsoft.com/ja-jp/visualstudio/install/create-a-network-installation-of-visual-studio#how-to-create-a-layout-for-a-previous-visual-studio-2017-release</a>
※「以前の Visual Studio 2017 リリースのレイアウトを作成する方法」をご参考ください。
</span></p>
<span style="font-family: メイリオ">手順</span>

<span style="font-family: メイリオ">1) 該当バージョンのセットアップファイル (例 vs_professional.exe) を入手します。
</span>

<span style="font-family: メイリオ">2) インストール イメージを保存するフォルダーを作成し、以下のコマンドでイメージをダウンロードします。
</span>
<p style="margin-left: 22pt"><span style="font-family: メイリオ">コマンド例) Visual Studio Professional を c:\vs2017offlineに展開する場合
vs_professional.exe --layout c:\vs2017offline
</span></p>
<span style="font-family: メイリオ">作成したインストーラーにバージョン名を付与するなどして保存してください。
</span>

&nbsp;

<span style="font-family: メイリオ"><strong>インストール時の事前準備</strong>
</span>

<span style="font-family: メイリオ">オフラインなどで Visual Studio 2017 のインストールに必要な証明書がダウンロードできない環境の場合は事前に以下の手順で適用してください。
</span>
<p style="margin-left: 22pt"><span style="font-family: メイリオ">オフライン環境での Visual Studio のインストールに関する特別な考慮事項
<a href="https://docs.microsoft.com/ja-jp/visualstudio/install/install-visual-studio-in-offline-environment">https://docs.microsoft.com/ja-jp/visualstudio/install/install-visual-studio-in-offline-environment</a>
※ 「Visual Studio オフライン インストールに必要な証明書をインストールする」をご参考ください。
</span></p>
&nbsp;

<span style="font-family: メイリオ">証明書をインストールまたは更新するには 3 つのオプションがありますが、個人のお客様はオプション 1 の手順が簡易です。
</span>
<p style="margin-left: 22pt"><span style="font-family: メイリオ">オプション 1 - レイアウト フォルダーから手動で証明書をインストールする
オプション 2 - エンタープライズ環境で信頼されたルート証明書を配布する
オプション 3 - Visual Studio のスクリプト化された展開の一部として証明書をインストールする
</span></p>
&nbsp;

<span style="font-family: メイリオ">本稿が、特定バージョンの Visual Studio 2017 のインストーラーを保存する必要がある開発者様のお役に立てましたら幸いです。
</span>]]></content:encoded>
    </item>
  </channel>
</rss>