当发布不使用Clickonce的.net应用程序(它在C#中)时,我如何确保框架的正确版本(例如4.0)将与应用程序一起安装(如果尚未安装)?
使用Clickonce发布时,Clickonce可以自动检测目标计算机上是否安装了目标版本的.net,如果不是,请自动下载并安装。如果我不使用Clickonce,而是使用iexpress或任何其他包装系统怎么办? 功能
答案 0 :(得分: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
),然后设置长文件名支持。