我正在使用nsis为我的Windows窗体应用程序创建安装程序。我需要.Net Framework 3.5 SP1作为我的应用程序的先决条件。所以使用NSIS我检查它是否在客户端机器上可用。如果没有,那么它将默默安装它。但它给了我一个错误。我知道.Net Framework 3.5 SP1需要从“程序和功能”中启用。在控制面板中。
那我怎样才能启用功能' .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位中试过这个):
谢谢..!
答案 0 :(得分:2)
默认情况下,近99.9%的Windows 7安装都安装了.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及更低版本。
答案 1 :(得分:1)
执行以下代码。它通过命令提示符为.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