【问题标题】:Install correct .net version with application (not using Clickonce)使用应用程序安装正确的 .net 版本(不使用 Clickonce)
【发布时间】:2013-06-23 14:51:32
【问题描述】:
在发布不使用 Clickonce 的 .net 应用程序(使用 C#)时,如果尚未安装,我如何确保正确版本的框架(例如 4.0)与应用程序一起安装?
使用 Clickonce 发布时,Clickonce 可以自动检测目标计算机上是否安装了目标版本的 .net,如果没有,则自动下载并安装。如果我不使用 Clickonce,而是使用 iexpress 或任何其他打包系统怎么办?
【问题讨论】:
标签:
c#
.net
deployment
publish
iexpress
【解决方案1】:
这似乎与问题How to detect what .NET Framework versions and service packs are installed?有些相关,所以我在此链接以供参考。
基本上,iexpress 没有内置支持来检测和安装 .NET 框架;你必须自己做。从理论上讲,您可以为此批量编写一些东西;一个简单的例子可能如下所示:
@echo off
setlocal
rem Check if .NET 4.0 is installed; if not, try to install it
reg query "HKLM\Software\Microsoft\NET Framework Setup\NDP\v4\Full" /v Install
if not errorlevel 0 dotNetFx40_Full_x86_x64.exe /q /norestart
rem Check if the install was successful; if it was, install app
reg query "HKLM\Software\Microsoft\NET Framework Setup\NDP\v4\Full" /v Install
if not errorlevel 0 exit /b 1
::[...install app, etc...]
在 IExpress 存档中捆绑 .NET 4.0 (dotNetFx40_Full_x86_x64.exe) 的副本,将该批处理文件设置为您的安装命令(例如 cmd /c install.bat),并设置长文件名支持。