この質問は、プログラミングに関連するものではなく、展開に関連するものです。
実稼働 Windows サーバーを維持し、コードを展開することを仕事とする会社のグループと、私はよく話していることに気づきました。法律およびコンプライアンス上の理由から、私はサーバーを直接見ることも制御することもできないため、どのバージョンの .NET がサーバーにインストールされているかを知る唯一の方法は、そのグループに指示を与えることです。
これまでのところ、インストールされているバージョンを確認するために考えられるすべての方法 (1.1 または 2.0 に一致する管理ツールを確認する、[プログラムの追加と削除] リストのエントリを確認する、 c:\Windows\Microsoft.NET の下のディレクトリ) には欠陥があります (少なくとも 1 台のマシンで 2.0 がインストールされているのを見たことがありますが、管理ツールの下に 2.0 のエントリはありません。その方法では、3.0 以降の「プログラムの追加と削除」リストについては何もわかりません)。現実と同期しなくなる可能性があり、ディレクトリの存在は必ずしも何の意味もありません)。
私は一般的に、これらのものが事前に整っていることを知る必要があることを考えると(「おっと、これには必要なすべてのバージョンとサービスパックが含まれていない」ことを発見しても、短いメンテナンス期間ではうまく機能しません)、私はしなければなりませんサーバーに直接アクセスできないため、「プロキシで」チェックを行います。本番環境の Windows サーバーにインストールされている .NET のバージョンを確認する簡単な方法は何ですか? できれば、フレームワークがインストールするものを使用してこれを行うためのいくつかの固有の方法が高速であり、何らかのユーティリティをロードする必要がなく、フレームワークが適切にインストールされていなくてもファイルが配置されている場合に確実に失敗する方法 (つまり、 、ディレクトリがあり、そこに gacutil.exe が含まれていますが、そのバージョンのフレームワークは実際には「インストール」されていません)
編集:フレームワークに組み込まれているこれを行うための優れた確実な固有の方法がない場合、これを見つけることができる、軽量でインストール不要の優れたプログラムを知っている人はいますか? 誰かが簡単に作成できると想像できますが、既に存在する場合はさらに優れています。