使用应用程序安装正确的.net版本(不使用Clickonce)

时间:2013-06-23 14:51:32

标签: c# .net deployment publish iexpress

当发布不使用Clickonce的.net应用程序(它在C#中)时,我如何确保框架的正确版本(例如4.0)将与应用程序一起安装(如果尚未安装)?

使用Clickonce发布时,Clickonce可以自动检测目标计算机上是否安装了目标版本的.net,如果不是,请自动下载并安装。如果我不使用Clickonce,而是使用iexpress或任何其他包装系统怎么办? 功能

1 个答案:

答案 0 :(得分:1)

这似乎与问题How to detect what .NET Framework versions and service packs are installed?有些相关,所以我在这里链接到它以供参考。

基本上,中没有内置支持来检测.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),然后设置长文件名支持