2017-07-31 16 views
1

私のWindowsフォームアプリケーション用のnsisを使用してインストーラを作成しています。私のアプリケーションの前提条件として.Net Framework 3.5 SP1が必要です。だからNSISを使用して私はそれがクライアントマシンで利用可能かどうかをチェックします。そうでなければ、それは静かにインストールされます。しかし、それは私にエラーを与える。私は知っている。コントロールパネルの 'プログラムと機能'から有効にするには.Net Framework 3.5 SP1が必要です。「プログラムと機能」から.Net Framework 3.5 SP1を有効にし、NSISを使用してインストールします。

NSISスクリプトを使用してコントロールパネルから「.NET FRAMEWORK 3.5」機能を有効にするにはどうすればよいですか。

の.NET Framework 3.5 SP1をチェックしてインストールするマイNSISセクションは次のとおりです。

section 
    SetOutPath "$temp\Pre_requisites" 
    ; check and install .Net Framework 3.5SP1 
    ReadRegStr $R1 HKLM "Software\Microsoft\NET Framework Setup\NDP\v3.5" "SP" 
    ${If} $R1 != "1" 
        DetailPrint "Microsoft .NET Framework 3.5 SP1 needed. Installing..."    
        File "$temp\Pre_requisites\dotnetfx35.exe"  
        ExecWait '"$temp\Pre_requisites\dotnetfx35.exe" /q /norestart' 
    ${Else} 
    DetailPrint "Microsoft .NET Framework 3.5 SP1 Found." 
    ${EndIf} 
sectionend 

エラーメッセージが(私は窓に7 SP1 64ビット版を、これを試してみました)です:

enter image description here

感謝..!

答えて

1

以下のコードを実行してください。 .Net Framework 3.5オンラインインストールのコマンドプロンプトで、enable featureパラメータを指定してdism.exeを実行します。

 section 
     ; check and install .Net Framework 3.5SP1 
     ReadRegStr $R1 HKLM "Software\Microsoft\NET Framework Setup\NDP\v3.5" "SP" 
     ${If} $R1 != "1" 
         DetailPrint "Microsoft .NET Framework 3.5 SP1 needed. Installing..."    
         nsExec::Exec 'cmd /c %windir%\system32\dism.exe /Online /Enable-Feature /FeatureName:NetFx3 /All' 
     ${Else} 
     DetailPrint "Microsoft .NET Framework 3.5 SP1 Found." 
     ${EndIf} 
    sectionend 
2

すべてのWindows 7インストールのほぼ99.9%に、デフォルトで.Net 3.5がインストールされています。なぜならそれはソースに組み込まれた機能だからです。 正確なバージョンの.netがインストールされているかどうかを確認するには、レジストリを確認してください。 Windows 7で.net 3.5を実際にインストールする必要がある場合は、https://technet.microsoft.com/de-de/library/dn482069.aspxをチェックしてください。 Windows 7では.net 3.5をインストールするためにDSIMを使用する必要があるためです。インストーラはWindows XP以降のためのものです。

関連する問題