一个用installshield12.0打包c#winform程序的实例

首先,新建一个工程:File->New->Common->InstallScript Project 添入你的工程名,去掉Create project file in 'Project Name' subfolder 前面的对钩,选择“OK ”。

进入Project assistant 界面。单击“- - - > ”按钮。根据需要填写公司名、应用程序名。

添加组件,这里默认,点下一步。

选择上一步的组件,根据需要选择你要最终将文件拷贝到的地方。如:我需要将我的程序安装到“C:/Program Files/广州升和电器设备有限公司/高考监控软件/xxx.exe"则选择Program Fiels 点右键选择:New Folder 将文件夹重命名为:广州升和电器设备有限公司 ,右键点击“广州升和电器设备有限公司”选New Folder ,重命名为:高考监控软件。选择“高考监控软件”文件夹,点ADD FILES 添入你的应用程序等。如下图:

添加快捷键:选择NEW按钮,出现选择对话框,选择刚才添入的exe文件。可以对它进行重命名。

下一步,出现询问注册对话框,这里缺省,下一步。

询问你的打包程序所出现的对话框:如:阅读协议、公司/用户名、安装路径等。

再下来是选择安装语言,选择简体中文(如果安装了的话),你会发现默认的英文是不能不选的,怎么修改,后面有介绍。

选择最后安装程序生成形式,这里选CD-ROM。运行Build Installations。一个简单的安装程序就出来了。

下面讲几个修改:

1.修改语言。选择Installation Designer选项卡,选择General Information 在中间界面会看到String Table里出现了简体中文和英文。默认为英文。在简体中文点右键,选make define。然后在回到Project Assistant的选择安装语言界面将英文前面的对钩去掉。

2.安装时提示安装.NET2.0。选择Installation Designer- - - >Support Files/Billboards- - - >Language Independent.在右边工作区中点右键选Insert Files Ins 将dotnetfx.exe加入,然后在Install Script的Dlg_SdFeatureTree:中修改代码:

Dlg_SdFeatureTree: 
    
if ((nResult = BACK) && (nSetupType != CUSTOM)) goto Dlg_SdAskDestPath;
    szTitle 
= "";
    szMsg 
= "";
    szFeatures 
= "";
    nLevel 
= 2;
    
if (nSetupType = CUSTOM) then
        
//{{IS_SCRIPT_TAG(Dlg_SdFeatureTree)    
        nResult = SdFeatureTree( szTitle, szMsg, TARGETDIR, szFeatures, nLevel );
        
//}}IS_SCRIPT_TAG(Dlg_SdFeatureTree)
        if (nResult = BACK) goto Dlg_SdAskDestPath;  
    endif;  
    MessageBox (
"接下来系统将安装.NET2.0,如果系统在安装的过程中提示已经安装则取消即可。", INFORMATION);  
    szJDK 
=  SUPPORTDIR ^ "dotnetfx.exe";
    
if (LaunchAppAndWait (szJDK, "", WAIT) < 0) then
       MessageBox (
"不能加载程序 .NET2.0。",SEVERE);
    endif; 

3.在安装程序复制文件到指定目录后,修改完成对话框,要求实现询问时候查看自述文件和运行程序功能。首先按照添加dotetfx.exe的方法加入文本文件ReadMe.txt。加入函数OnFirstUIAfter()

function OnFirstUIAfter()
    
STRING szTitle, szMsg1, szMsg2, szOpt1, szOpt2,szProductName;
    NUMBER bvOpt1, bvOpt2;
    NUMBER bShowUpdateServiceDlg;
begin

    ShowObjWizardPages(
NEXT); 
         
    szProductName 
= "高考系统监控软件";

    SdProductName (szProductName);

    
    szTitle 
= "高考系统监控软件安装程序";

    szMsg1  
= "%P 安装程序已经完成. " +

              
"选择您想要的服务.";

    szMsg2  
= "单击"完成"完成%P安装程序.";

    szOpt1  
= "查看自述文件.";

    szOpt2  
= "运行%P.";
    bShowUpdateServiceDlg 
= FALSE;
    
    
//{{IS_SCRIPT_TAG(Dlg_SdDinishEx)    
    
    
if ( BATCH_INSTALL ) then
        SdFinishReboot ( szTitle , szMsg1 , SYS_BOOTMACHINE , szMsg2 , 
0 );
    
else
        
        
// If the update service is enabled, show finish dialog that includes
        
// update check option.
        
if( bShowUpdateServiceDlg && ( ENABLED_ISERVICES & SERVICE_ISUPDATE ) ) then

            
if( SdFinishUpdateEx( szTitle, szMsg1, szMsg2, szOpt1, szOpt2, TRUE ) ) then

                
// Don't check for updates in silent mode.
                if( MODE != SILENTMODE ) then
                    UpdateServiceCheckForUpdates( 
""FALSE );
                endif;

            endif;

        
else
            SdFinish ( szTitle , szMsg1 , szMsg2 , szOpt1 , szOpt2 , bvOpt1 , bvOpt2 ); 
            
if (bvOpt1) then          // Display the read me file.
                LaunchAppAndWait (NOTEPAD, READMEFILE, LAAW_OPTION_WAIT); 
            endif ;

            
if (bvOpt2) then
           LaunchApp (TARGETDIR 
^ "CustormSystem.exe","");
          
// szTitle=TARGETDIR;
          
/* SprintfBox (INFORMATION, szTitle, "Launch %s here."
szProductName); 
*/
            endif;
       endif;

     endif;    

   
//}}IS_SCRIPT_TAG(Dlg_SdDinishEx)    
end

工程到此也接近尾声了。

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章