我的需求是做一个无人值守安装程序
要求:
1:自动检测系统的版本若是XP Professional 或Server 2003 版则转向第二步,若不是则提示用户并推出程序
2:检测系统是否已经安装过IIS,若已经装过则转向第三步,若没有装过则自动安装IIS
3:检测系统是否安装过.NET Framework2.0或以上版本,若已经装过则转向第四步,若没有安装则自动安装
4:检测系统是否安装过SQL Server 2005(企业版或开发版)若没有安装则自动全部安装,若已经安装过则提示用户成功
5:若某一步骤安装出现失败或异常,则跳过该步骤。小弟首次遇见此问题,时间紧急,请教高手们进行讲解,若分不够,可以再加,只要能解决问题,分不是问题。

解决方案 »

  1.   

    OperatingSystem os = Environment.OSVersion;
            Version vs = os.Version;http://www.zuowenw.com/dianniaowangluo/wangluobiancheng/ASPNET/200810/530658.html
      

  2.   

    3. typeof(Object).Assembly.ImageRuntimeVersion;
      

  3.   

    你去研究下VS.net里的 部署 项目,里面有流程和界面的自定义功能
      

  4.   

    我只想知道。。NET 都沒有。你判斷是否安裝。NET 的程序怎麼執行。出非你用其它非。NET 的語言。
      

  5.   

    似乎可以考虑用微软的powershell脚本做, google到一个脚本,似乎有些启发:""
    $pcname = ""
    $AppName = ""
    $AppLocation = ""
    Do {$pcname = Read-Host "Remote PC Name"} While ($pcname -eq "")
    Do {$Appname = Read-Host "MSI File Name"} While ($AppName -eq "")
    Do {$AppLocation = read-Host "MSI Location"} While ($AppLocation -eq "")
    ""
    "This will now install $AppLocation\$AppName on $pcname"
    $Install = Read-Host "Enter Y to Continue or N to Cancel"
    ""
    If ($Install -eq "Y")
    {
    Copy-Item "$AppLocation\$AppName" -destination "\\$pcname\c$\"
    ""
    "$AppName has been copied to C:\ and installation will now start"
    (Get-WMIObject -ComputerName $pcname -List | Where-Object -FilterScript {$_.Name -eq "Win32_Product"}).Install("C:\$AppName") | Select-Object -Property ReturnValue | Format-Wide -Column 1
    "$AppName has been installed.  Please check Return Value above for errors.  It should be 0"
    Remove-Item "\\$pcname\c$\$AppName"
    "Copy of $AppName has been removed from C:\"
    ""
    "INSTALLATION IS COMPLETE!!!"
    ""
    }
    Else {"Installation Canceled"}把这个脚本做些修改,把$AppLocation之类的变量替换掉,查PowerShell的手册找到检测其他程序的cmdlet,大概可行
      

  6.   

    http://www.zuowenw.com/dianniaowangluo/wangluobiancheng/ASPNET/200810/530658.html
    到这个网上去学习下呵呵 楼住的问题会早日解决