65

スクリプトインストールを実行するための一連のスクリプトがあります。スクリプトは、任意のサーバー2008マシンで使用できます。ただし、dosバッチファイルを使用して、(スクリプトを実行する前に).NET3.5がインストールされているかどうかを確認する必要があります。それは可能ですか?

にファイルがC:\WINDOWS\Microsoft.NET\Framework\v3.5存在するかどうかを確認できることはわかっていますが、もう少し信頼性の高いものがあればいいのですが。

dir / fileが存在するかどうかだけでなく、実際にインストールされているかどうかを確認したいと思います。

ありがとう

4

9 に答える 9

75

実際にインストールされているかどうかを知りたいとおっしゃっていたので、(バージョン固有のコードを実行する以外に)最善の方法は、安心できる名前の「Install」レジストリキーを確認することだと思います。0x1 ははいを意味します。

C:\>reg query "HKLM\SOFTWARE\Microsoft\NET Framework Setup\NDP\v3.5"| findstr Install

   Install     REG_DWORD       0x1
   InstallPath REG_SZ  c:\WINNT\Microsoft.NET\Framework\v3.5\

これはたまたま「マイクロソフト推奨」公式の方法でもあります。

WMI も別の可能性ですが、実用的ではないようです (遅いですか?私の C2D、SSD では 2 分かかります)。多分それはあなたのサーバーでよりうまく機能します:

C:\>wmic product where "Name like 'Microsoft .Net%'" get Name, Version

Name                                                Version
Microsoft .NET Compact Framework 1.0 SP3 Developer  1.0.4292
Microsoft .NET Framework 3.0 Service Pack 2         3.2.30729
Microsoft .NET Framework 3.5 SP1                    3.5.30729
Microsoft .NET Compact Framework 2.0                2.0.5238
Microsoft .NET Framework 4 Client Profile           4.0.30319
Microsoft .NET Framework 4 Multi-Targeting Pack     4.0.30319
Microsoft .NET Framework 2.0 Service Pack 2         2.2.30729
Microsoft .NET Framework 1.1                        1.1.4322
Microsoft .NET Framework 4 Extended                 4.0.30319

C:\>wmic product where "name like 'Microsoft .N%' and version='3.5.30729'" get name

Name  
Microsoft .NET Framework 3.5 SP1

これら以外では、100% 確実にする唯一の方法は、フレームワーク バージョンを対象としてコンパイルされた単純なコンソール アプリを実際に実行することだと思います。個人的には、これは不要であると考えており、レジストリ メソッドを信頼しています。

最後に、サーバーから到達可能なイントラネット テスト サイトをセットアップし、ユーザー エージェントをスニッフィングして .NET のバージョンを判断することができます。もちろん、これはバッチ ファイル ソリューションではありません。こちらのドキュメントも参照してください。

于 2011-07-29T09:51:04.323 に答える
18

以下のような DOS コマンドが、インストールされている .NET フレームワークを表示するジョブを実行することを意味します。

wmic /namespace:\\root\cimv2 path win32_product where "name like '%%.NET%%'" get version

次に、以下が表示される場合があります。

Version
4.0.30319

WMIC は、使いこなせば非常に便利です。目的に応じてスクリプトで WMI をコーディングするよりもはるかに簡単です。

于 2011-03-22T03:55:36.290 に答える
15

残念ながら、最善の方法はそのディレクトリをチェックすることです。意味はわかりませんが、.NET3.5は.NET3.0および.NET2.0と同じCLRを使用するため、「実際にインストール」されるため、すべての新しい機能は、そのディレクトリにある新しいアセンブリにまとめられます。基本的に、ディレクトリがそこにある場合は、3.5がインストールされます。

私が追加する唯一のことは、最大の柔軟性のためにこの方法でdirを見つけることです:

%windir%\Microsoft.NET\Framework\v3.5
于 2009-01-29T19:15:40.140 に答える
5

自分で小さなコンソール アプリを作成し、System.Environment.Version を使用してバージョンを調べることができます。Scott Hanselman が、それについてのブログ投稿を行っています。

または、インストールされているバージョンのレジストリを調べます。HKLM\Software\Microsoft\NETFramework セットアップ\NDP

于 2009-01-29T19:26:42.567 に答える
4

小さなコンソールアプリを実行する場合はclrver.exe、.NETSDKからインストールすることもできます。それ以上にきれいになるとは思いません。これは私の答えではありません(しかし、私はたまたま同意します)、私はここでそれを見つけました。

于 2010-04-28T00:20:30.900 に答える
0

インストールされている c# コンパイラと .net の印刷バージョンを確認できます。

@echo off

for /r "%SystemRoot%\Microsoft.NET\Framework\" %%# in ("*csc.exe") do (
    set "l="
    for /f "skip=1 tokens=2 delims=k" %%$ in ('"%%# #"') do (
        if not defined l (
            echo Installed: %%$
            set l=%%$
        )
    )
)

echo latest installed .NET %l%

にはスイッチがcsc.exeありませんが、-versionロゴに .net バージョンが印刷されています。msbuild.exe でも試すことができますが、.net Framework 1.* には msbuild がありません。

于 2017-01-07T12:28:56.447 に答える
0

REMCONFIG ファイルを検索します。これが終了しない場合、ユーザーは .Net Framework 2.0 を持っていません `

SET FileName=%windir%\Microsoft.NET\Framework\v2.0.50727\CONFIG
IF EXIST %FileName% GOTO INSTALL_DIALER
ECHO.You currently do not have the Microsoft(c) .NET Framework 2.0 installed.
于 2014-01-26T17:56:55.503 に答える
0

これは私のために働いています:

@echo off
SETLOCAL ENABLEEXTENSIONS

echo Verify .Net Framework Version

for /f "delims=" %%I in ('dir /B /A:D %windir%\Microsoft.NET\Framework') do (
    for /f "usebackq tokens=1,3 delims= " %%A in (`reg query "HKLM\SOFTWARE\Microsoft\NET Framework Setup\NDP\%%I" 2^>nul ^| findstr Install`) do (
        if %%A==Install (
            if %%B==0x1 (
                echo %%I
            )
        )
    )
)

echo Do you see version v4.5.2 or greater in the list?

pause

ENDLOCAL 

2^>nulエラーを蒸気にリダイレクトします。

于 2015-09-24T18:01:16.537 に答える
-2

.NET 4 のこのページを見ることができます: http://www.itninja.com/question/batch-script-to-check-and-install-dotnet4-0

于 2015-10-15T18:19:55.950 に答える