在IS2008里,在Installation Designer里设置“Application Data”----“Redistributables”下勾选.Net Framework是不是就把它打包进了软件包,不论是否电脑上已经有了.Net Framwork3.5都会安装它。也就是IS2008只会检测.Net Framework2.0。
而在IS2010里则可以设置.NetFrameWork3.5开机检测是吧,但是请问各位怎样设置啊?是不是这样呢?
1、在Installation Requirements里选择“Microsoft  .Net Framework3.5”。
2、“Application Data”----“Redistributables”里选“Microsoft  .Net Framework3.5”和“Windows Installer3.1”。同时在下面选择“Install before feature selection”。但是,这样设置总是报错嘞,而且“.Net Framework”(Specify .Net Framwork options)生成窗口中,还是只能选择“.Net2.0”。

解决方案 »

  1.   

    在Installation Designer里设置“Application Data”----“Redistributables”下勾选.Net Framework3.5是不是就把它打包进了软件包,不论是否电脑上已经有了.Net Framwork3.5都会安装它。也就是IS2008只会检测.Net Framework2.0。
    对吗?
      

  2.   

    楼主 .net安装的时候 它自己会检测版本信息 比他低的它才去安装(前提还有IE版本高于5.0)比他高的他就不安装 如果你要把.net一起打包进去 我教你个方法 你把.net安装包放到Behavior and Logic->Support Files/Billboards->support files->language Independent 右边空白地方 右键添加.net安装包dotnetfx.exe 然后在脚本里面添加一句脚本语言就行了
        MessageBox("接下来安装instmsiA",INFORMATION); 
        szJDK=SUPPORTDIR^ "dotnetfx.exe";
        if(LaunchAppAndWait(szJDK,"",WAIT)<0) then
        MessageBox("不能加载程序"+szJDK+".",SEVERE);
        endif;  
      

  3.   


    /////////////////////////////////////////////////////////
    //
    // 安装.net framework2.0 及其语言包,和中文件输入法补丁包
    //
    /////////////////////////////////////////////////////////
    prototype void InstallDotNetFramework();function void InstallDotNetFramework()
    string szMsg, szProgram, szCmdLine;   
    number nResult;
    begin 
    RegDBSetDefaultRoot(HKEY_LOCAL_MACHINE);
    if (RegDBKeyExist ("SOFTWARE\\Microsoft\\.NETFramework\\policy\\v2.0") < 0) then  
                
      SdShowMsg("正在安装 .NetFramework...",TRUE);
      Delay(1);
      if( LaunchAppAndWait(SRCDIR ^ "Support\\DotNet20\\dotnetfx.exe", "", WAIT ) < 0) then
      SdShowMsg("",FALSE);
      szMsg = "安装 .NetFrameWork软件包出错,安装程序将中止! \n请手动安装后再试,如仍无法解决,请联系系统供应商!";
      MessageBox(szMsg, SEVERE);
      abort;
      endif;
      SdShowMsg("",FALSE);
      else
         return;
      endif; 
     
      MessageBox("CheckAgain", SEVERE);
      //由于程序无法检测安装.net时用户是否取消了安装还是安装完成,再次查看.net是否安装
      RegDBSetDefaultRoot(HKEY_LOCAL_MACHINE);
      if (RegDBKeyExist ("SOFTWARE\\Microsoft\\.NETFramework\\policy\\v2.0") < 0) then
      abort; //如果没安装,就直接退出
      endif;
       
    SdShowMsg("正在安装 .NetFramework 语言包...",TRUE);
    Delay(1);
    if( LaunchAppAndWait(SRCDIR ^ "Support\\DotNet20\\langpack.exe", "", WAIT ) < 0) then
    SdShowMsg("",FALSE);
    szMsg = "安装 .NetFramework 语言包出错! \n稍后请手动安装后再试,如仍无法解决,请联系系统供应商!";
    MessageBox(szMsg, SEVERE); 
    endif;

    SdShowMsg("正在安装 .NetFramework 中文输入法补丁包...",TRUE);
    Delay(1);
    szProgram = "msiexec.exe"; 
    szCmdLine = " /p \"" + SRCDIR + "\Support\\DotNet20\\NDP20-KB925488-X86.msp\"";
    LongPathToQuote(szProgram, TRUE);
    LongPathToShortPath(szProgram);                 
    if (LaunchAppAndWait(szProgram, szCmdLine, LAAW_OPTION_WAIT) < 0) then
    SdShowMsg("",FALSE);
    szMsg = "安装 .NetFramework 中文输入法补丁包出错。\n稍后请手动安装后再试,如仍无法解决,请联系系统供应商!";
    MessageBox(szMsg, SEVERE);
    endif; 

    SdShowMsg("",FALSE);
    end; 
    这是我自个写的一个安装.net脚本。你可以在Prepare_Install中调用,或直接拷进去执行。
      

  4.   

    注:.net 3.5 不用安装补丁,同时要求在相应的安装目录中有相应的.net安装包和语言包安装程序。如果是.net3.5/sp1的话,要有自制完整安装包,不然在安装过程中要连网很麻烦。
      

  5.   

    楼上 你安装那个要是出点错 就要重启电脑  abort不可乱用啊 这个是异常要重启电脑的 你这个动不动就重启 换成exit;
      

  6.   

    上面脚本有点小错误instmsiA改成dotnetfx - -!你要装的是.net  MessageBox("接下来安装dotnetfx",INFORMATION);  
      szJDK=SUPPORTDIR^ "dotnetfx.exe";
      if(LaunchAppAndWait(szJDK,"",WAIT)<0) then
      MessageBox("不能加载程序"+szJDK+".",SEVERE);
      endif;