从“程序和功能”启用.Net Framework 3.5 SP1并使用NSIS进行安装

问题描述:

我使用nsis为我的Windows窗体应用程序创建安装程序。我需要.Net Framework 3.5 SP1作为我的应用程序的先决条件。因此,使用NSIS我检查它是否在客户端机器中可用。如果没有,那么它会默默安装它。但它给了我一个错误。我知道.Net Framework 3.5 SP1需要从控制面板中的“程序和功能”启用。从“程序和功能”启用.Net Framework 3.5 SP1并使用NSIS进行安装

那么,如何从控制面板使用NSIS脚本启用功能'.NET FRAMEWORK 3.5'。

我NSIS部分,检查并安装.NET Framework 3.5 SP1是:

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 

错误消息是(我已经在Windows尝试这个7 SP1 64位):

enter image description here

谢谢..!

执行以下代码。它通过命令提示符为.Net Framework 3.5在线安装执行带启用功能参数的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 

在所有Windows 7安装中,将近99.9%的默认安装了.NET 3.5。因为它是内置到源代码中的功能。 请检查注册表以找出确切版本的.net已安装。如果您确实需要在Windows 7下安装.net 3.5,请查看https://technet.microsoft.com/de-de/library/dn482069.aspx。因为您需要使用DSIM在Windows 7下安装.net 3.5。安装程序仅适用于Windows XP及更低版本。