VS2022 で、.Net Framework 4.0 のプロジェクトを開く方法
みなさん、こんxxは。
とうとう、始まりました、
「通りすがりの」「通りすがりによる」「通りすがりのため」
の、技術ブログです。
※毎度のお約束ですが、ここに書かれていることは、すべて、
「無保証」「無担保」「無責任」
です。 あくまで、「自己責任」で、お願いします。
-----
と、前置きはこれくらいにして、今回のネタは、
「Visual Studio 2022 で、.Net Framework 4.0 のプロジェクトを開く方法」
です。
※以下、戯言です。やりかたを早く見たい人は、こちらへどうぞ。
-----
私が思うに、「Visual Studio 2022」(以下、VS2022)は、
史上最強の、Visual Studio 開発環境
です。何と言っても、
・(やっと) 開発環境自体が「64bit」に、対応した!
が、最大級のメリットです。いろいろ開発しているとわかるのですが、VS2019までは、実は、
「32bitアプリケーション」だった
( そもそも、"C:\Program Files (x86)\" 以下に、インストールされていた)のです。が、
VS2022 は、正真正銘の、
「
64bit アプリケーション」
になりました。
これで何が嬉しいかと言うと、最大の利点は、
「64bit アプリケーションのデバッグが、直接出来るようになった」
ことですね。VS2019までは、64bit の、「コンパイル」までは出来たのですが、例えば、どこかに「ブレークポイント」を張ろうとすると、
悲しいことに、
「
ターゲットが 64bit アプリケーションの場合は、ブレークポイントを張ることは出来ません」
と言われてしまい、デバッグが出来ませんでした。
※じゃぁ、今までどうやって「デバッグ」していたかと言うと、
「ターゲットを一時的に x86(または、AnyCPU)」に変更して、「なんちゃってデバッグ」
をしておりました。
(もちろん、最初から
最終ターゲット自体が「x86
(または、AnyCPU)
」であれば、
何の問題もない(まぁ、これで済むアプリが大半なんですが)のですが、
時々、「それでは済まないアプリ」(大容量メモリ空間を必要とするとか)があるので、
その時は本当に「一時的にパラメータを変更」
して、だましだましデバッグしていました。
こうなると、実機で「64bit アプリに起因する問題
」が出たら、お手上げです。
そのほかにも、
・「
64bit アプリケーション」でも、デザイナーがそのまま動くようになった。(これも、↑と同様なテクニックで「だましだまし」やっていたのですが、これは「目に見える」ところなので、考えようによっては、こっちのほうがタチが悪い。とくに「カスタムコントロール」とかが直接扱えるようになったことは、非常に大きなメリット。)
・「大きなプロジェクト」が、落ちなくなった。今までは「32bit」の制限で、大きなプロジェクトは開けなかった。
etc., 64bit化のメリットは、大きいです。
-----
が、「史上最強」とはいえ、そこには「弱点」もあります。それは、
・.Net Framework 4.0 のプロジェクトが、開けない(正確には、4.0 ~ 4.5 までですが)
ことです。
※また余談ですが、私が思う「最強のアプリ環境(Windows限定)」は、
「VS2010 の、Visual Basic (VB2010) で、作ったアプリ」
だと思っています。これは、Windows 7 以後だと、最新の Windows 11 に至るまで、
・ランタイム不要(基本、exe ファイルをコピーするだけ)で、動きます!
(Windows Vista 以下でも、ランタイム入れれば動きます。)
これがホントの 「WriteOnce, Run Anywhere」 「真のユニバーサルアプリ」 ではないかと思っています。
(いろいろなアプリを開発してれば分かりますが、「ランタイム問題」は、古くて新しく、かつ、非常に根深い問題です。 何度、この問題で悩まされてきたことか、わかりません・・・)
それはさておき、VS2022を、デフォルトインストールした状態で、.Net Framework 4.0 のプロジェクト(VB2010 のプロジェクトとか)を、開こうとすると、しばらく考えた挙句に、
のようなメッセージを出してきます。(要するに「ターゲットフレームワークが、インストールされていません」ということです。)
ここで、「.Net Framework 4.0」が使いたいので、真ん中を選んで、右下のボタンをクリックすると、
別画面で、デフォルトブラウザが開いて、「Visual Studio 用 .NET SDK をダウンロードする」のページが開くのですが、そこには、
と、なっていて、「.Net Framework 4.0 用 SDK(Developer Pack)」は、ありません。
-----
では、「Visual Studio 2022 で、.Net Framework 4.0 のプロジェクトは開けない」のでしょうか?
そんなことはありません。ちょっとした「裏技」で、開くことができるようになります。
その1
・以前のバージョンの Visual Studio のダウンロード から、
「Visual Studio Express 2012 for Windows Desktop」 を、ダウンロードして、
インストールしたのちに、すぐに「アンインストール」する。
(私は、これでうまくいっています。環境は、Win11 Pro 22H2)
こんな感じで、
「ターゲットフレームワーク」が、選べるようになります。
(ちなみに、この操作だけだと、追加されるのは、4.0、4.5 だけです。
4.5.1、4.5.2 は、別途「Visual Studio 用 .NET SDK をダウンロードする」から、追加しています。
難点: なぜか、「SQL 2012」などのアプリが、アンインストールされずに残る。私は使わないので、アンインストールしましたが、
間違って「必要なアプリまで、消さないように」注意したほうがいいです。ディスクに余裕があれば、放置でもOKと思います。
その2
・「VS2019」を、インストールして、その中で、「.Net Framework 4.0」のサポートを有効にする。
VS2012以後は、「複数バージョンの VisualStudio の同時インストール」に、正式に対応しています。
なので、「VS2022」「VS2019」 の、同時インストールが可能です。
(VS2019 の設定を変えると「VS2022」にも、影響を及ぼすって・・・ちょっとアレですが、まぁ、ヨシとします。)
難点:こっちは、「VS2022」で開いてほしいのに、「VS2019」で開いてしまう。(バージョンセレクタとか使うと、そうなる。
「正式サポート」は、VS2019 までだから、正しいと言えば正しいワケですが。)
最初は、こっちのやり方(こちらが、王道と言えばそうです。)でしばらく使っていたのですが、ワケもなく、
「2つのバージョンが、インストールされている」のが気に食わなかったので、「VS2022のみでいける方法」を
模索して、その1の方法に辿り着きました。
-----
私は試していません。
その3
・Windows SDK とエミュレーターのアーカイブ から、「Windows 8 SDK」 を、ダウンロードして、
.「Net Framework 4.5 Software Development Kit」のみにチェックを入れて、インストールする。
Open .net framework 4.5 project in VS 2022. Is there any workaround?
https://stackoverflow.com/questions/70022194/open-net-framework-4-5-project-in-vs-2022-is-there-any-workaround
※これは本来「.Net Framework 4.5」の話だが、恐らく、この操作で同時に、4.0 の SDKも同時にインストールされると思われます。
上記リンクには、この他にもいろいろやり方が載っている。
その4
・nuget サイトから、「Microsoft.NETFramework.ReferenceAssemblies.net40」 を、ダウンロード
(Microsoft.NETFramework.ReferenceAssemblies.net40 の右の、「Download package」
をクリックで、ダウンロードできる。)
ファイルを、.zip ファイルとして開いて、
build\.NETFramework\ フォルダの中身(恐らく、 v4.0 フォルダしかない)を、
C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\
フォルダに、コピーする。
How to target .NET Framework 4.0 in VS 2022 on Windows 11?
https://learn.microsoft.com/en-us/answers/questions/993957/how-to-target-net-framework-40-in-vs-2022-on-windo.html
より。
同様な、4.5 の場合のやりかたが、その3のリンクにも載っている。
nuget: Microsoft.NETFramework.ReferenceAssemblies.net45
※その1、2、3、とも、最終的にやってるのは、その4 と同じことだと思われます。
手順的には、「一番めんどくさい」ですが、一番「無駄が無い」かも知れません。
-----
本質的に、VsiualStudioは、.Net環境の管理をしているわけではありません。インストールされた環境を、
「表示しているダケ」
です。なので、「SDK」さえ、何とか入れてしまえば、ターゲット環境として指定することができるようになります。
本日は、以上です。
コメント
コメントを投稿