难道偌大的一个CSDN没有人知道失望ing...........................

解决方案 »

  1.   

    给你一段我用过的代码:
    实现在安装过程中自动安装附带的支持软件,你也可以把ocx的注册等写到这里,安装时就自动注册了。
    using System;
    using System.Collections;
    using System.ComponentModel;
    using System.Configuration.Install;
    using System.IO;
    using System.Diagnostics;
    using System.Windows.Forms;namespace BX_ZDTD
    {
    /// <summary>
    /// Installer 的摘要说明。
    /// </summary>
    [RunInstaller(true)]
    public class Installer : System.Configuration.Install.Installer
    {
    /// <summary>
    /// 必需的设计器变量。
    /// </summary>
    private System.ComponentModel.Container components = null; public Installer()
    {
    // 该调用是设计器所必需的。
    InitializeComponent(); // TODO: 在 InitializeComponent 调用后添加任何初始化
    } /// <summary> 
    /// 清理所有正在使用的资源。
    /// </summary>
    protected override void Dispose( bool disposing )
    {
    if( disposing )
    {
    if(components != null)
    {
    components.Dispose();
    }
    }
    base.Dispose( disposing );
    }
    #region 组件设计器生成的代码
    /// <summary>
    /// 设计器支持所需的方法 - 不要使用代码编辑器修改
    /// 此方法的内容。
    /// </summary>
    private void InitializeComponent()
    {
    components = new System.ComponentModel.Container();
    }
    #endregion private void InstallDateBase()
    {
    StreamWriter ss=new StreamWriter(@"c:\CONFIG.SYS",true);
    ss.Close();
    string dir=this.Context.Parameters["dir"]; ProcessStartInfo psi = new ProcessStartInfo();
    psi.WorkingDirectory = dir+"\\MsAgent";
    psi.FileName = dir + @"\MsAgent\MSagent.exe";
    //psi.UseShellExecute=true; //msi文件,如是exe不用设 Process.Start(psi);
    ProcessStartInfo psi1 = new ProcessStartInfo();
    psi1.WorkingDirectory = dir+"\\MsAgent";
    psi1.FileName = dir + @"\MsAgent\vfpoledb.exe"; //psi.UseShellExecute=true; //msi文件,如是exe不用设
    Process.Start(psi1); ProcessStartInfo psi2 = new ProcessStartInfo();
    psi2.WorkingDirectory = dir+"\\MsAgent";
    psi2.FileName = dir + @"\MsAgent\Merlin.exe"; //psi.UseShellExecute=true; //msi文件,如是exe不用设
    Process.Start(psi2); } public override void Install(System.Collections.IDictionary stateSaver)
    {
    try
    {
    base.Install(stateSaver);
    this.InstallDateBase();//调用上面的方法
    }
    catch
    {
    throw;
    }
    } public override void Uninstall(System.Collections.IDictionary stateSaver)
    {
    base.Uninstall(stateSaver);
    //UnInstallDataBase();
    } public override void Commit(System.Collections.IDictionary stateSaver)
    {
    base.Commit(stateSaver);
    } public override void Rollback(System.Collections.IDictionary stateSaver)
    {
    base.Rollback(stateSaver);
    }
      

  2.   

    添加->添加类->安装程序类