.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…


参照側プログラムのリビルドが必要となるような DLL の変更について

こんにちは、Visual Studio サポート チームです。 ほとんどの .NET Framework アプリケーション開発プロジェクトでは、プログラムを再利用できるよう、ある程度の機能をひとまとまりにしたクラス ライブラリ (DLL) を開発、参照されているかと思います。今回は、そのような DLL に変更を加えた際に、DLL を参照するプログラム側でも再ビルドが必要になるケースについてご案内します。 DLL に実装されたメソッドの名前や引数などに変更が生じた場合、その DLL を参照するプログラム側でも変更内容に合わせてメソッドの呼び出し方を修正し、リビルドする必要があることはイメージしやすいかと思います。このような変更以外で、一見するとリビルドは必要ないように思われる場合でも、DLL を参照するプログラム側でリビルドが必要な場合があります。 DLL を参照する側のプログラムのリビルドの必要性については、プロジェクトの工数にも影響する重要なトピックですので、本稿が少しでもお役に立てましたら幸いです。 ※ 以下にご案内する内容の一部は、製品の仕様として公開させていただいているものではなく、あくまで、現時点の検証に基づくものであり、予告なく変更される可能性もあります。また、リビルドが必要なすべてのケースを網羅していることを保証するものではありません。何卒、ご了承ください。   DLL の変更時に参照元のプログラムも再ビルドが必要になるケース DLL 側で以下の 2 パターンの変更が行われた場合、変更された DLL を参照しなおして参照側プログラムもリビルドする必要があります。特に (1) の定数、デフォルト引数、および名前付き引数の追加/変更については、参照側のリビルドは不要と考えられがちですのでご注意ください。   (1) DLL と参照側プログラムの接点部分に変更が生じた場合 DLL に定義された以下の情報は、参照側プログラムのビルド時に参照側にも取り込まれます。このため、DLL 側でこれらに変更が生じた場合、参照側プログラムでも、新しい DLL を参照しなおしてリビルドする必要があります。   ・定数の値 ・列挙型 (型の名前、要素の名前、要素の順番、要素の挿入・削除、など) ・クラス、構造体、インターフェイス (型の名前、要素 (フィールド・プロパティ・メソッド) の名前、要素の削除、メソッドの戻り値の型・デフォルト引数・名前付き引数、アクセス修飾子、など) ・属性 (InternalsVisibleTo、Obsolete、Conditional、etc.) の有無  …


Visual Studio 2015 Update 3 がインストールされた環境で VSIX パッケージのアップグレード インストールに失敗する問題について

こんにちは。Visual Studio サポート チームです。 今回は、先日リリースされた Visual Studio 2015 Update 3 で確認された VSIX パッケージのインストールに関する問題と対処方法についてご案内します。 (追記 : 2016 年 9 月 15 日) 本問題の修正を含む更新プログラムが米国時間の 2016 年 9 月 14 日にリリースされています。 更新プログラムは本稿末尾に記載のある MSDN ライブラリのドキュメント内の “manual download and installation” から入手してご利用いただけます。   現象 Visual Studio 2015 Update 3 がインストールされた環境で、VSIX パッケージをアップグレード インストールしようとすると以下のようなエラーが発生し、インストールに失敗する場合があります。     原因 本エラーは Visual Studio 2015 Update 3…


Visual C++ 2015 アプリケーションでの CRT ローカル配置について

こんにちは。Visual Studio サポート チームです。 8 月 2 日に Windows 10 の大型アップデートである Anniversary Update がリリースされ、本格的に Windows 10 の導入を進められている企業様も多いかと思います。 今回は、Windows 10 にも関係する Visual C++ 2015 のランタイムの変更点についてご紹介します。 ユニバーサル C ランタイム ライブラリについて Visual C++ 2015 では C ランタイム (CRT) ライブラリが大きくリファクタリングされ、Universal CRT (UCRT) とそれ以外のランタイム (vcruntime140.dll など) の 2 種類で構成されています。 UCRT には広く利用される標準的な C ランタイム ライブラリのコードが実装されており、安定した API を備えているため Visual Studio のリリースごとにバージョン変更する必要のない、Windows OS…


Visual Studio 2015 の _utime32 関数で指定可能な時刻の上限が以前と異なる

こんにちは、Visual Studio サポート チームです。 今回は、Visual C++ で提供される _utime32 関数で指定可能な時刻の上限が、Visual Studio 2015 と以前のバージョンとで異なる現象についてご案内します。   現象: Visual Studio 2015 で提供される Visual C++ の _utime32 関数の引数として、UTC 2038 年 1 月 18 日 23:59:59 (日本時間 2038 年 1 月 19 日 08:59:59) より後の時刻を指定すると処理に失敗してエラーとなり、戻り値として -1 が返ります。 これに対し、Visual Studio 2013 以前のVisual C++ では、UTC 2038 年 1 月 19 日 03:14:07 (日本時間…


TFS2015 Update2 の評価版から製品版への切り替えについて

こんにちは。Visual Studio サポートチームです。 2016 年 3 月 30 日に Team Foundation Server 2015 Update 2 がリリースされました。 Update 2 の新機能については、リリース ノート をご覧ください。 今回は Team Foundation Server 2015 Update 2 で変更された、試用版から製品版へのアップグレード方法をご案内します。   試用版から製品版へのアップグレード VisualStudio.com から Team Foundation Server をダウンロードしてインストールした場合、その日から 60 日間を評価期間として試用版を利用することができます。 Visual Studio ダウンロード https://www.visualstudio.com/downloads/download-visual-studio-vs  ※ 画面左側に表示されている製品群から「Team Foundation Server 2015」を選択してダウンロードすることができます。 従来のバージョンでは、評価版から製品版へのアップグレードの際はプロダクト キーを入力する必要がありましたが、Update 2 ではキーの入力を行いません。その代わりに、管理コンソールから [試用版の完了] ダイアログを表示して、試用版の使用を完了します。 手順 試用版での評価を終えたら、Team…


夏時間が適用されるタイムゾーンにおける mktime 関数利用時の注意事項について

こんにちは。Visual Studio サポート チームです。 今回は、夏時間が適用されるタイムゾーンにおいて Visual C++ の mktime 関数を利用する際に注意が必要となる点をご紹介します。   夏時間 (DST : Daylight Saving Time) とは 夏時間は、1 年のうちの夏を中心とした期間に、日照時間を有効利用する目的で標準時を 1 時間早める制度です。 例えば、米国西部で利用されている太平洋標準時 (PST) では、夏時間として太平洋夏時間 (PDT) が採用されており、3 月の第 2 日曜日の午前 2 時から、11 月の第 1 日曜日の午前 2 時までの期間が夏時間として扱われ、その前後で、その地域における標準時が切り替わります。 現在の日本では採用されていませんが、欧米を中心とした諸外国では広く採用されているため、国際化に対応したシステムでは夏時間を考慮する必要があるケースも増えていると思います。   スキップされる 1 時間と、2 度繰り返される 1 時間 標準時との切り替えのため、夏時間の開始時には、時計の上では 1 時間がスキップされ、夏時間の終了時には 1 時間が 2 度繰り返されような状況となります。 PDT の場合、2016 年を例にとると、以下のように標準時が切り替えられ、タイムゾーンに…


Visual Studio 2015 で MFC Active X コントロール プロジェクトを使用する際の注意点について

こんにちは、Visual Studio サポート チームです。 今回は Visual Studio 2015 で MFC Active X コントロール プロジェクトを使用する際に、ご注意いただきたい問題についてご案内します。 問題 Visual Studio 2015 Update1 および Update 2 の MFC Active X コントロール プロジェクトのクラス ビューからウィザードを使用し、メソッド、プロパティを追加した場合に、Visual Studio 開発環境が応答不可となり、メソッド、プロパティを追加することができません。   再現手順: Visual Studio 2015 Update1 または Update 2 を起動します。 MFC ActiveX コントロール プロジェクトを新規作成するか、既存のプロジェクトを開きます。 [クラス ビュー] を開き、ツリー上のインターフェイスのノードを右クリックし、[追加] – [メソッドの追加 (M)] を選択します [メソッド追加ウィザード] から新規にメソッドを追加します。 ※…


Visual Studio 2015で透過型プロキシのランタイム型をウォッチする際の注意点について

こんにちは、Visual Studio サポート チームです。 今回は Visual Studio 2015 でアプリケーションをデバッグする際に使用する、ウォッチ (変数の値の表示) 機能に関して、ご注意いただきたい問題についてご案内いたします。   問題 Visual Studio 2015 で .NET Framework アプリケーションをデバッグする際、ContextBoundObject 派生クラスなどのオブジェクトの値をウォッチ ウィンドウで表示しようとすると、以下のエラーが発生し、値を確認することができません。  エラー:  “このコンテキストでは、透過プロキシのランタイム型を取得できません。“     原因 本問題は、Visual Studio 2015で導入された新しい式エバリュエーターが透過プロキシのランタイム型を解決できない不具合に起因しており、Visual Studio 2015、Visual Studio 2015 Update 1、Visual Studio 2015 Update 2 で発生することが確認されております。 本問題はマイクロソフトにて製品の問題として認識されており、可能な限り、将来バージョンの製品アップデートで修正される予定です。   対処方法 本問題は、Visual Studio のオプションで、”従来のC#およびVBの式エバリュエーターを使用する” を選択することで対処することが可能です。 以下にオプションの設定方法をご案内します。   <オプションの設定方法> Visual Studio を起動し、メニューから [ツール]…