.NET Core時代のWindows Formsデザイナー

※2020/9/27時点の内容です。

.NET Framework時代のWindows FormsデザイナーはVisual Studioのプロセス(devenv.exe)内でアセンブリを読み込み、実行するタイプでした。
このため、シームレスに動くように見える反面、32bit限定となる、自分の書いたユーザーコントロールが原因でVisual Studioごと落ちるなどの問題もありました。

.NET CoreではWindows FormsデザイナーをVisual Studioの外部プロセスで実行するアウトプロセスのタイプとなっています。
実質的に1から再実装に近い仕事量であり、互換性の問題も多数発生したであろうことが予想され、開発チームの皆さんには感謝すべきところです。

https://devblogs.microsoft.com/dotnet/windows-forms-designer-for-net-core-released/

なお、2020/9/27時点、上記記事時点ではPreviewだった、16.7はすでにリリースされているので、一通りの機能が実装されたはずです。
ただ、こういった再実装が行われたということを踏まえて、不具合が出てもFeedbackして応援する気持ちで取り組みたいところです。

(ビジネスで取り組まれる方は、.NET Frameworkとのマルチターゲットプロジェクトにして切り戻しも視野に入れても良いかもしれません)

Visual Studio 2017/2019で作成したいプロジェクトがない=プロジェクトを作成できない場合

以前の記事 にも挙げましたが、Visual Studio 2017/2019 はデフォルトでインストールすると「何もできない Visual Studio」となります。

新規に作ろうとしても「空のソリューション」だけとなってしまいます。

対応方法としては、この画面の左下の Visual Studio インストーラーを開くをクリックするか、スタートメニューの Visual Studio Installer を起動してください。
インストーラーで「変更」ボタンをクリックすると、ワークロードの選択画面になりますので、自分のやりたいことに応じて選択しましょう。

VB.NET や C# でデスクトップアプリケーションを作りたい方

「.NET デスクトップ開発」を選んでください。

msdn20170701_2

C++ でデスクトップアプリケーションを作りたい方

「C++によるデスクトップ開発」を選んでください。

ストアアプリ(UWP)を作りたい方

言語を問わず、UWP アプリ開発を希望する方は「ユニバーサルWIndowsプラットフォーム開発」を選んでください。

Visual Studio 2017/2019のインストール時の選択

Visual Studio 2017/2019はインストーラーがこれまでと大きく変わっています。
基本的にはやりたいことベースに選べば必要なコンポーネントがインストールされますので、きちんと目的で選びましょう。
もちろん、複数同時に選んでも良いので、可能性があるのならあらかじめチェックを入れておくのも手です。その分、ダウンロードやインストールに時間がかかったり、ディスクの領域を多く消費しますのでご注意ください。

    • .NETデスクトップ開発
      C#やVB.NETでWindowsフォームアプリケーション、コンソールアプリケーション、WPFアプリケーションなど、昔からある方法で、.NETアプリケーションを開発するケース
      多くのC#、VB.NETのWindowsアプリ開発者の方はこれにチェックを入れておいた方が良いでしょう。
      (これを選択してもC++/CLIではWindowsフォームアプリケーションの新規開発はできなくなっています。2012から非推奨になっているためです
    • C++によるデスクトップ開発
      C++を使ったWin32プロジェクト、ATLプロジェクトなどを使いたい場合はこちら。
      C++で開発される方は、個別コンポーネントで「デスクトップC++ x86 およびx64用Windows 10 SDK (10.0.15063.0)」や「Windows SDK (10.0.14393.0)」にもチェックを入れておきましょう。既知の問題を回避するためです。
      また、MFCが必要な方は個別のコンポーネントで「MFCとATLのサポート(x86とx64)」も忘れずに選択しましょう。
    • ユニバーサルWIndowsプラットフォーム開発
      C#、VB.NET、C++などでWindows 10 PC、Mobile、HoloLensなど、UWPアプリを作りたい方はこちら。

ほかにもWeb系などいろいろとありますが、私自身が詳しくないので割愛します。
もし、インストールしたけど特定のプロジェクトが見つからない、ソリューションしか作成できないといった時は、Visual Studio Installerを起動して、変更ボタンをクリックして、オプションを確認しましょう。

何も選んでいなかった場合

ソリューションしか作成できません。

image

.NETデスクトップ開発を選んだ場合

見慣れたWindowsフォームアプリケーション、コンソールアプリケーション、WPFアプリケーションが作成できます。

image

C++によるデスクトップ開発を選んだ場合

Win32コンソールアプリケーション、Win32プロジェクト。
見ての通り、MFCはワークロードを選ぶだけでは入らないので、必要な方はワークロードタブでC++によるデスクトップ開発を選んだ後に、個別コンポーネントでMFCのチェックを入れましょう。

image

ユニバーサルWIndowsプラットフォーム開発

空のアプリほか、ユニバーサルWindowsで必要なプロジェクトのみインストールされます。

image

※本稿はVisual Studio 2017 (15.2)の時点の情報です。Visual Studio 2017はインストーラーを含め、1ヶ月に1度程度のアップデートが提供されていくため、執筆時点と現在とで状況が異なる可能性があります。

VS2017/2019は異なるSKUを共存させることができる

これまでの Visual Studio は Express 以外の Community, Professional, Enterprise を共存させることはできませんでした。

Visual Studio 2017/2019 ではインストールの仕組みが変わったため、Community, Professional, Enterprise といったエディション(SKU)のインスタンスを共存させると言うこともできます。
開発環境のエディションごとの検証が必要な人は便利かもしれません。

なお、それに伴い、Visual Studio のインストール先が必要なケースでは vswhere というツールが便利です。すべてのインスタンスを列挙してくれます。

出力例

Visual Studio Locator, version 1.0.50
Copyright (C) Microsoft Corporation. All rights reserved.

instanceId: 1d4779be
installDate: 2017/03/11
installationName: VisualStudio/15.0.0-RTW+26228.4
installationPath: C:\Program Files (x86)\Microsoft Visual Studio\2017\Community
installationVersion: 15.0.26228.4
displayName: Visual Studio Community 2017
description: 学生、オープン ソース、および個々の開発者のための無料で完全な機能を備えた IDE
enginePath: C:\Program Files (x86)\Microsoft Visual Studio\Installer\resources\app\ServiceHub\Services\Microsoft.VisualStudio.Setup.Service
channelId: VisualStudio.15.Release
channelPath: C:\Users\Owner\AppData\Local\Microsoft\VisualStudio\Packages\_Channels\4CB340F5\catalog.json
channelUri: https://aka.ms/vs/15/release/channel

instanceId: 29de2085
installDate: 2017/03/12
installationName: VisualStudio/15.0.0-RTW+26228.4
installationPath: C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise
installationVersion: 15.0.26228.4
displayName: Visual Studio Enterprise 2017
description: 生産性向上と、さまざまな規模のチーム間の調整のための Microsoft DevOps ソリューション
enginePath: C:\Program Files (x86)\Microsoft Visual Studio\Installer\resources\app\ServiceHub\Services\Microsoft.VisualStudio.Setup.Service
channelId: VisualStudio.15.Release
channelPath: C:\Users\Owner\AppData\Local\Microsoft\VisualStudio\Packages\_Channels\4CB340F5\catalog.json
channelUri: https://aka.ms/vs/15/release/channel

instanceId: 2df6de13
installDate: 2017/03/11
installationName: VisualStudio/15.0.0-RTW+26228.4
installationPath: C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional
installationVersion: 15.0.26228.4
displayName: Visual Studio Professional 2017
description: 小規模なチーム向けのプロフェッショナルな開発者向けツールおよびサービス
enginePath: C:\Program Files (x86)\Microsoft Visual Studio\Installer\resources\app\ServiceHub\Services\Microsoft.VisualStudio.Setup.Service
channelId: VisualStudio.15.Release
channelPath: C:\Users\Owner\AppData\Local\Microsoft\VisualStudio\Packages\_Channels\4CB340F5\catalog.json
channelUri: https://aka.ms/vs/15/release/channel

Visual Studioで「Windowsフォームアプリケーション」テンプレートが見つからない?

Visual Studio 2017 の方はインストール時の選択が問題の可能性があります。こちらをご覧ください。


MSDN フォーラムにおいて短期間に 2 件の質問があったので書いてみます。

たとえば、Visual Studio 2015 Community を Windows 10 にインストールすると、スタートメニューの上の方にある、最近追加されたものに以下のように表示されます。

image

ついつい、Visual Studio 2015 という文字に惹かれて起動してしまいそうになりますが、これは Blend といって、WPF などの画面デザインに使うアプリケーションであって、Visual Studio ではありません。
Blend は Windows フォームアプリケーションに対応していないので、プロジェクトの新規作成で表示されず、画面も似ているので混乱してしまいます。

スタートメニューをスクロールして、V のカテゴリにある Visual Studio 2015 のアイコンで起動してください。

image

(備考)Visual C++ では「Windows フォーム アプリケーション」テンプレートは廃止されています

Visual C++ の「Windows フォーム アプリケーション」のプロジェクトテンプレートは 2012 から廃止されています。現在、新規開発は非推奨になっているのでご留意ください。

https://support.microsoft.com/ja-jp/kb/3001686

これを無視して過去のバージョンのテンプレートで作ってくる、あるいは公開・配布されている第三者のテンプレートを使えば新規に作ることはできますが、将来性の懸念があること、C++ と .NET の両方の知識を十分求めるハードルの高さ、サンプルの少なさ、できあがったものは C++/CLI という独自の言語であって C++ ではないことから、この道を選ばないことを推奨します。

Visual Studio 2015でTeam Explorer for Microsoft Visual Studio 2015のインストール中に致命的なエラーが発生するケース

前からの事例ですが、備忘として残しておきます。

発生する事象

Visual Studio 2015 のインストールにおいて、以下のようなエラーが表示されることがあります。

  • Team Explorer for Microsoft Visual Studio 2015で「インストール中に致命的なエラーが発生しました。
  • Microsoft NuGet – Visual Studio 2015 などのいくつかのパッケージでで「パッケージの実行は失敗しました。」

私自身も職場で遭遇して困りました。再度インストーラーを立ち上げても同様のエラーで進まないためです。

 

対策

コマンドライン引数/uninstallを指定して実行し、アンインストール処理を実行する。
それからインストールをやり直せばうまくいきました。
MSDN フォーラムでの成功事例

 

vs_professional.exeやvs_professional_JPN.exeなど、Webインストーラーの起動時にこれを指定すればOKです。メディアからでも同様にvs_professional.exeがあるはずなので、それに/uninstall引数をつけてやればOKです。Community、Express、Enterpriseはファイル名違いますので、それに合わせてください。

 

手順例

コマンドライン引数を指定する方法がわからない方は以下を参考にしてみてください。

  1. vs_community.exeなど、対象のexeをShiftキーを押しながら右クリックし、「パスのコピー」を選ぶ。
    image
  2. Windowsキーを押しながらRキーを押して、名前を指定して実行を開く。
  3. Ctrlキーを押しながらVキーを押して貼り付けて、半角スペースを空けて /uninstall と打ち込む。
    image
  4. Enterキーを押す。

これでコマンドライン引数をつけて実行となります。

Visual Studio 2015 のインストーラーはオンラインで最新の情報を取得している

気づいている方や知っている方もおられるかもしれませんが、Visual Studio 2015 のインストーラーはオンラインでコンポーネントの追加・更新の情報を取得しているようです。
その判断根拠の1つとしては、Visual Studio 2015 リリース時にはなかった、Windows 10 向けの開発ツールが候補に出てくるからです。

なお、そのツールがリリースされる前に Visual Studio 2015 をインストールしていた環境で、プログラムのアンインストールから「変更」を選ぶと以下のように、新着コンポーネントとして表示されます。

image

 

逆にいえば、オフライン環境でディスク、あるいはディスクイメージからインストールしようとすると後付けで足されたコンポーネントをインストールできない。
(この場合は、Web インストーラーで /layout オプションを使うとか工夫することになるのかなぁ。試せていませんが)

Visual Studio 2015 世代の Express や Community

使用条件の都合で Express を使わないといけない場合、2015 でも Express は引き続きリリースされています。
ダウンロードは Visual Studio の Web サイトから

上部のリンクから、ダウンロード、トップダウンロード、すべてのダウンロードとたどってください。

image

次のページの Visual Studio 2015 のリンクをクリックするとエディションの選択リンクが現れますので、お好きな Express、あるいは Community のエディションを選んでください。

image

「オフラインでインストールする方法」というリンクはありますが、「製品の登録」は Visual Studio 上で「Microsoft アカウント」によるサインインが必要。
2013 からと同じで、オフライン環境では利用できないと考えた方がよさそうです。

image

※オフライン環境での試験のため、日付を1ヶ月先に設定した状態でのスクリーンショット。

オフラインで利用できた、2012 以前の Express の登録キーの発行も終了しつつありますし、オフライン環境で経費削減目的の無償利用は今後できなくなっていくと考えた方が良いでしょう。
どうしても、オフライン環境で Visual Studio が必要なのであれば、このような制約のない、Professional 以上を買うべき時が来ていると言えるでしょう。

Visual Studio 2015 (VS2015) の「標準」には C++ が含まれていない

先週末にリリースされた Visual Studio 2015 ですが、デフォルトのインストールオプションの「標準」には C# と VB.NET が中心となっており、C++ がインストールされない設定のようです。

image

戦略的にわからなくはないのですが、C++ が必要な方は最初からカスタムインストールを選びましょう。

image

モバイル開発(iOS, Android)もされる方は、もう少し下の方に選択肢があります。

image

なお、標準でインストールしてしまった場合、Visual C++ のプロジェクトを作ろうとしても、機能のインストールという選択肢が出てくるわけになります。

image

Visual Studio 2005/2008/2010/2012 Express の登録キーが取得できなくなった?

[2015/08/19追記] 2010 と 2012 の登録キー発行が再開したようです。→参照
[2017/11/09追記] 2017に関する記載を更新しました。

以前から Visual Studio(Visual Basic, Visual C#, Visual C++, Visual Web Developer) Express の 2005/2008 あたりは登録キーが取得できないという話が MSDN フォーラムに挙がっていましたが、最近は 2012 までのバージョンにおいて同様に取得できなくなっているようです。

具体的には、登録キーをオンラインで取得するためのボタンやハイパーリンクをクリックすると、Microsoft のホームページにたどり着き、登録キーを取得する流れが途切れています。
2010 で IE の開発者ツールで情報を見る限り、リダイレクトの過程で 404 エラーページに飛ぼうとして、さらに Microsoft のトップページにリダイレクトされているので、ページが削除されている疑いが濃厚です。
(あくまで、現時点(2015/07/04)の振る舞いを述べていますので、状況が変わる可能性はあります)

※MSDN フォーラムにおいて、取得できなくなっている事象について告知されています。

このように登録キーが取得できなくなっているので、それぞれの対処は以下のようになります。

バージョン 対処方法
2005 オフラインインストール版を利用する
Internet Archive のキャッシュ からたどれる)
2008 オフラインインストール版を利用する
http://go.microsoft.com/?LinkId=9348306
2010 方法なし
新しいバージョンへ移行することを検討する

[2015/08/19追記]
システムが復旧したことがMSDNフォーラムにて告知されている。
2012 方法なし
新しいバージョンへ移行することを検討する

[2015/08/19追記]
システムが復旧したことがMSDNフォーラムにて告知されている。
2013/2015 登録キー方式ではなく、Microsoftアカウントでのサインインが必要。
(オフラインでは登録不可)
2017 Expressは廃止されました。
個人開発者など、Communityの条件を満たす人はそちらを、企業など条件を満たさない方は有償製品を買うしかありません。
[2017/11/09追記]
for Windows Desktopのみですがリリースされています。ただし、これが最後のリリースなのでCommunityの条件を満たさない方は「無料で便利」と使い続けるのではなく、将来的な計画も立てていく必要があります。

 

2005 や 2008 はオフラインインストール版で回避できるのですが、2010 からはオフラインインストール版でも登録キーが必要になっているので回避できません。
このため、現時点では 最新バージョン の Express、使用条件を満たすなら Community Edition に移行することが必要になります。
(Community Edition では企業ユースでは使えないことが多いはずですので、使用条件に注意

Express のどれを選べば良いかわからない場合

以前とは違い、言語別ではなく、目的別の構成になっています。

デスクトップアプリ開発 Express for Windows Desktop
Web アプリ開発 Express for Web
Windows ストアアプリ開発 Express for Windows

どうしても特定のバージョンが必要な場合

企業ユースなど、どうしても、過去バージョンの Visual Studio で開発することが必要な方は、Visual Studio + MSDN を購入すれば、過去バージョンの Visual Studio もダウンロードすることができるようになりますので、この機会にご検討いただいた方が良いかもしれません。

2013 からはオフライン環境では使えません

2013 の Express からは「Microsoft アカウントでサインインできる環境」が必要 となっています。
つまり、オフラインインストールはサポートされていないと考えられます。
US Forum の参考スレッド

Visual Studio がどうしてもオフライン環境で必要な場合は、有償製品を買っていただくしかなさそうです。

(もし、ビジネスとしてそういった要求が生じているのであれば、今回の旧バージョンの打ち切りという事情を考えて、「開発環境はタダで手に入る」と思わず、きちんと予算化する(費用計上する)しかないと思います、現場によっては難しいかもしれませんが…)

2017 からは Express が廃止されています

2015 の時点で「Community があるから Express を出さない」という噂がありましたが、2017 から正式に Express が廃止となりました。
[2017/11/09追記] 遅れて for Windows Desktopのみリリースされています。ただし、2017が最終バージョンであることが明言されましたので、Community の条件を満たさない環境の方は Express がなくなるものとして計画を立てていくことが必要です。

個人開発者など、Community の利用条件を満たす方はそちらを使いましょう。
企業など、使用条件を満たさない方は費用をかけて Professional 以上を買うか、古い環境を使い続けるか、別のソフトウェアに移行するかの決断の時です。
(古い環境はいずれサポート終了日を迎えます。そのときまでには買うか、別のソフトウェアに移行するか考えましょう)