Visual Studio 2017 のインストール後に Visual Studio SDK の COM 参照でエラーとなる現象について

こんにちは、Visual Studio サポート チームです。 今回は Visual Studio 2017 のインストール後に、Visual Studio SDK のコンポーネントを COM 参照している Visual Studio アドイン プロジェクトや Visual Studio 拡張機能プロジェクトにおいて、参照エラーが発生する現象と対処方法についてご案内します。 なお、本現象は Visual Studio アドイン プロジェクトや Visual Studio 拡張機能プロジェクトの開発時に発生する可能性のある問題ですが、ビルド済みの既存のアドインや拡張機能をご利用いただく際に問題が生じることはありませんので、この点はご安心ください。   現象 Visual Studio 2017 のインストール後、以前のバージョンの Visual Studio 拡張機能のプロジェクトなどで、Visual Studio SDK のコンポーネントを COM 参照している場合に、下図のような参照エラーが発生します。   Visual Studio 2017 インストール前 Visual Studio 2017 インストール後   また、ビルド時に次のようなエラー メッセージが出力されます。…


Visual C++ 2015 でマルチバイト文字セットを利用するとコマンドライン引数を正しく取得できない

こんにちは、Visual Studioサポートチームです。 今回は、Visual Studio 2015 で マルチバイト文字セット (MBCS) を利用する際に確認されている問題についてご案内します。   現象 マルチバイト文字セット (MBCS) を利用した Visual C++ アプリケーションにおいて、コマンドラインの引数の最初の文字にマルチバイト文字がある場合に、WinMain 関数内で正しく引数を取得できない事象が確認されています。 引数の最初の文字が 1 バイト文字である場合には、正しく引数を得られますが、引数に漢字などのマルチバイト文字が利用されている場合、正しく引数を取得することができない場合があります。 マイクロソフトでは、本現象を Visual C++ 2015 のランタイム ライブラリ (ユニバーサル CRT) の問題として認識しており、調査を行っております。   対処方法 本現象は MBCS 固有の問題であるため、プロジェクトで使用する文字セットとして Unicode を利用した場合は、本現象は発生しません。 Unicode を利用することができない場合は、別途、GetCommandLine 関数を使用して引数を取得することができます。 なお、MBCS は既に非推奨となっているため、可能な限り Unicode への移行をご検討ください。   マルチバイト文字セット (MBCS) のサポート(日本語訳) https://msdn.microsoft.com/ja-jp/library/5z097dxa.aspx(英語原文) https://msdn.microsoft.com/en-us/library/5z097dxa.aspx   MBCS のまま対応する方法として、対応例 を2つ紹介します。  …


Windows 10 および Windows Server 2016 における Windows インストーラー パッケージの VersionNT プロパティについて

こんにちは。Visual Studio サポート チームです。 今回は、開発したアプリケーションを配布する場合などに、Windows インストーラー パッケージ (MSI) から OS のバージョンをチェックする際にご注意いただきたい点についてご案内します。     ご注意いただきたい点 Windows インストーラー パッケージでは、VersionNT プロパティを使用した条件 (Condition) を定義することで、インストール対象の OS を制御することが可能でした。しかし、以下のドキュメントに記載の通り、Windows 10 および Windows Server 2016 に対応する VersionNT の値は Windows 8.1 と同じ 603 となっています。   VersionNT value for Windows 10 and Windows Server 2016 https://support.microsoft.com/en-us/kb/3202260   このため、VersionNT を使用する方法では、Windows 8.1、Windows 10 、および Windows Server 2012…


日本語版の Windows 10 で ヘルプ ビューアー 1.1 のカスタム ヘルプ コンテンツ インストールに失敗する

こんにちは。Visual Studio サポート チームです。 今回は日本語版の Windows 10 環境において、Visual Studio 2010 付属の ヘルプ ビューアー 1.1 にカスタム ヘルプ コンテンツを追加する際に発生する可能性があるエラーと、その対処方法についてご案内します。   現象 日本語版の Windows 10 環境において、 Visual Studio 2010 付属の ヘルプ ビューアー 1.1 にカスタム ヘルプ コンテンツ を追加した場合、以下のエラー メッセージが表示され失敗することがあります。   Application イベント ログには以下のようなエラーが出力されます。   <イベント ログの内容> ——— ログの名前: Application ソース: HelpLibManager 日付: xxxx/xx/xx xx:xx:xx イベント ID: 1003 タスクのカテゴリ: (1) レベル: エラー キーワード:…


EV コード署名証明書を使用したClickOnce アプリケーションのマニフェスト署名について

こんにちは。Visual Studio サポート チームです。 今回は EV コード署名証明書を使用して ClickOnce アプリケーションにマニフェスト署名を行う際に、ご注意いただきたい事項をご案内します。 コード署名証明書を使用し、ClickOnceアプリケーションにマニフェスト署名した場合、アプリケーションの配布や実行時に「発行元」を表示し、「改ざんがされていない正規品」であることをユーザーに明示することが可能となります。 その際に使用する証明書は、大きく分けて通常のコード署名証明書と EV コード署名証明書の 2 種類があります。 EV コード署名証明書は、証明書を発行する認証局による審査に高い基準があり、また、署名時に二要素認証を求められるなど、通常の証明書と比べてより信頼性が高いものとなります。 EV コード署名証明書を使用して、ClickOnceアプリケーションに署名し、ユーザーに署名したアプリケーションを配布するためには、以下の要件を満たす必要があります。     ClickOnce アプリケーションの開発環境の要件 マニフェスト署名のため、EV コード署名証明書に対応したバージョンである、Visual Studio 2015 以降のバージョンをご利用頂く必要があります。 ClickOnce アプリケーションをインストールする環境の要件  マニフェスト署名の検証のため、.NET Framework 4.6 以降のバージョンを事前にインストールしていただく必要があります。     ClickOnceアプリケーションのマニフェスト署名  Visual Studio 2015以上のバージョンではEVコード署名証明書を使用したアプリケーションの署名に対応しています。 そのため、EVコード署名証明書を使用し、アプリケーションに署名をする際には、Visual Studio 2015をご利用ください。 なお、Visual Studio 2013 以前のバージョンで、EVコード署名証明書を使用して、アプリケーションに署名をした場合には、ビルドと発行は正常に終了しますが、実際には署名が正常に完了していないため、ClickOnceアプリケーション起動時のダイアログに表示される発行元は “不明な公開元” として表示されます。     ClickOnceアプリケーションの実行 ClickOnceアプリケーションの実行時に、EVコード署名証明書を使用した署名を検証するためには、.NET Framework 4.6以上のバージョンが予め、実行環境にインストールされている必要があります。…


Windows 10 上で .NET Framework 4.6.2 のインストールに失敗する

こんにちは。Visual Studio サポート チームです。 今回は、Windows 10 に .NET Framework 4.6.2 をインストールする際に発生する可能性のあるエラーと対処方法についてご案内します。 ※ Windows 10 Anniversary Update を適用されている環境には既定で .NET Framework 4.6.2 がインストールされていますので、個別にインストールする必要はありません。以下の内容は、Anniversary Update を適用することができない Windows 10 環境に .NET Framework 4.6.2 をインストールするケースを対象としています。   現象 Windows 10 上で .NET Framework 4.6.2 のインストールを行った場合に、以下のエラー メッセージが表示されインストールに失敗することがあります。 ログファイルには以下のように記録されます。 —————————————— Exe (C:\99e6d478c9a1da0ac4fd\Windows10.0-KB3151900-x86.cab) failed with 0x543 – 匿名レベル セキュリティ トークンを開けません。 Exe Log File: CBS.log…


オフライン環境で .NET Framework 4.6.2 をインストールする場合の注意点

こんにちは。Visual Studio サポート チームです。 今回は、弊社サポートにお問い合わせいただくことも多い .NET Framework 4.6.2 のインストール時の問題と対処方法についてご案内します。 .NET Framework 4.6.2 のインストールを検討されている皆様のお役に立てましたら幸いです。   現象 オフラインまたは、最新の Windows Update を適用できない環境で  .NET Framework 4.6.2 のインストールを行った場合に、以下のようなエラーが発生しインストールに失敗することがあります。 ————————– 次の理由により、.NET Framework 4.6.2 はインストールされませんでした : 証明書チェーンを、信頼されたルート機関として構築できませんでした。 ————————– また、このときログ ファイルには以下のような内容が記録されます。 ————————– Installation failed with error code: (0x800B010A), “証明書チェーンを、信頼されたルート機関として構築できませんでした。 ” (Elapsed time: 0 00:01:35). ————————–   原因 .NET Framework のインストーラー パッケージにはデジタル署名が施されており、インストール時にはデジタル署名に使用されている証明書の有効性が検証されます。証明書の有効性を検証する際には、証明書の発行元や、証明書が失効されていないかどうかなど、最新の情報をインターネット経由で取得して使用します。 このため、インターネットに接続していない環境や Windows…


.NET Framework 用の月例のロールアップの導入について

こんにちは。Visual Studio サポート チームです。 2016 年 10 月から、「.NET Framework 用の月例のロールアップ (.NET Framework Monthly Rollup)」と呼ばれる新しい更新プログラムのリリースをご利用いただけるようになります。詳細については、以下の .NET Framework 開発チームからのアナウンスをご覧ください。   Introducing the .NET Framework Monthly Rollup https://blogs.msdn.microsoft.com/dotnet/2016/08/15/introducing-the-net-framework-monthly-rollup/ (日本語訳) .NET Framework 用の月例のロールアップの導入について https://blogs.technet.microsoft.com/jpsecurity/2016/08/30/introducing-the-net-framework-monthly-rollup/   ※ 2016/10/13 追記 : 以下のドキュメントも公開されました。あわせてご参照ください。 .NET Framework Monthly Rollups Explained https://blogs.msdn.microsoft.com/dotnet/2016/10/11/net-framework-monthly-rollups-explained/ (日本語訳) .NET Framework 用の月例のロールアップの詳細 https://blogs.technet.microsoft.com/jpsecurity/2016/10/13/net-framework-monthly-rollups-explained/  


.NET Framework 4.6.2 用のブートストラップ (setup.exe) の問題

こんにちは、Visual Studio サポートチームです。 今回は、.NET Framework 4.6.2 を必須コンポーネントに含むブートストラップ (Setup.exe) を作成する際に生じる問題と、その対処方法についてご案内します。   .NET Framework 4.6.2 用ブートストラップ パッケージ 開発したアプリケーションを .NET Framework 4.6.2 とともに配布するため、.NET Framework 4.6.2 を必須コンポーネントとして含めたブートストラップ (setup.exe) を作成したいことがあります。 そのようなブートストラップを開発するためには、.NET Framework 4.6.2 用のブートストラップ パッケージを使用します。 .NET Framework 4.6.2 用のブートストラップ パッケージは、.NET Framework 4.6.2 Developer Pack に含まれており、Developer Packは、以下のダウンロードサイトから入手することができます。   Windows 7 SP1、Windows 8.1、Windows 10、Windows Server 2008 R2 SP1、Windows Server 2012、Windows Server 2012…


Nuget で入手したライブラリを使用するプロジェクトのビルド時に MSB3086 のエラーが発生

こんにちは、Visual Studio サポート チームです。 今回は Nuget で入手したライブラリを使用するプロジェクトのビルド時に MSB3086 のエラーが発生するケースについて、対象方法と合わせてご紹介いたします。   Nuget について Nuget は .NET Framework をベースとした開発環境に対応したパッケージ マネージャでオープンソース(OSS)製品です。Nuget パッケージ マネージャは、Visual Studio 統合開発環境のエクステンションとして利用することが可能であり、開発者はこのパッケージ マネージャを使用して「Nuget gallery」に公開されているソフトウェアやライブラリを利用することができます。   現象 Nuget で入手したパッケージを含むプロジェクトをビルドした際に、以下のように MSB3086 のエラーが発生する場合があります。 <エラー例> targets(2863,5): error MSB3086: タスクは SdkToolsPath “” またはレジストリ キー “HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SDKs\Windows\v8.0A\WinSDK-NetFx40Tools-x86” を使用して “AL.exe”を見つけられませんでした。SdkToolsPath が設定されていること、SdkToolsPath の下の適切なプロセッサ固有の場所にツールが存在すること、および Microsoft Windows SDK がインストールされていることを確認してください。   原因 対象の Nuget パッケージが必要とする SDK…