我不對 安装与部署了解太少!不知道從哪裡開始!有沒有哪位高手給給一個份詳細的制做過程!謝謝!我的郵箱是:[email protected]

解决方案 »

  1.   

    webform? winform?
    我这只有web的,网上有很多资料,不管是webform还是winform,你可以自己找一、创建基本安装部署项目1.在解决方案资源管理器,右击解决方案添加新建项目安装部署项目Web安装项目,例如:命名为WebSetup.2.右击WebSetup项目视图文件系统1) 添加你所需要安装的Web程序(例如:WebApp).在文件系统中右击Web应用程序文件夹项目输出选择WebApp,同时选种主输出何内容输出.2) 添加相关的文件,例如.jpg .xml等文件(根据帮助可知这些文件无法自动添加到安装文件中),注意:原文件怎么样存放的,添加时也要以同样的文件夹存放.例如:原文件存放在\\aa\cc\bb.txt,则添加文件bb.txt时也应如此,右击web应用程序文件夹添加web文件夹(命名为aa)右击aa添加web文件夹(命名为cc)右击cc添加文件(bb.txt).3.右击WebSetup项目视图用户界面1) 添加你所需要的界面.安装启动添加对话框文本框(A),如果添加了文本框则必须要上移(右击要上移的文本框上移)到安装地址之上.2) 如果有许可协议对话框,则在文件系统中要添加一个.rtf格式的文件
    (注意:改文件一定要时通过word另存为.rtf格式得到,不可以通过记事本创建文件后把扩展名改为.rtf而得到,那样将不显示许可协议),右击许可协议对话框属性把licenseFile属性选为你所要添加的许可协议文件.(属性BannerBitmap安装对话框中的图片;Sunken是否凹凸显示.其他对话框相同)以上是安装文件制作的基本过程.如果要安装数据库,和用户自定义的一些操作如下:二、添加自定义操作----安装数据库1) 在用户界面右击添加对话框文本框(A)如果添加了文本框则必须要上移(右击要上移的文本框上移)到安装地址之上.2) 如果只安装一个数据库就把其Edit2Visible,Edit3Visible,Edit4Visible设置为false.把Edit1property定义一个变量名,例如:PARA1.3) 自定义用户操作,在资源管理器界面右击资源管理器新建C#(也可以是VB.NET),选择类库,命名为WebInstall.4) 新建项目会自动生成一个class1.cs文件,把次文件删除.右击WebInstall添加新项安装类,命名为Install.cs.5) 右击Install.cs视图设计界面,然后在服务器资源管理器中添加数据库master的连接,添加好后把这个连接拖到Install的设计界面6) 在Install.cs文件中添加以下代码注:要添加应用添加应用using System.Reflection;
    using System.Data;
    using System.Data.SqlClient;
    using System.IO;安装数据库代码    /// <summary>
        /// 获得配置文件中嵌入的文本文件
        /// </summary>
        /// <param name="Name">文件名</param>
        /// <returns></returns>    private string GetSql(string Name)
        {           
    Assembly Asm = Assembly.GetExecutingAssembly(); 
    Stream strm = Asm.GetManifestResourceStream(Asm.GetName().Name + "."+Name); 
    StreamReader reader = new StreamReader(strm); 
    return reader.ReadToEnd(); 
        }    /// <summary>
        /// 指定的数据库执行SQL语句
        /// </summary>
        /// <param name="DatabaseName">数据库名</param>
        /// <param name="sqlstring">SQL语句</param>
        /// <returns></returns>    private void ExecuteSql(string DataBaseName,string sqlstring)
        {
    System.Data.SqlClient.SqlCommand Command = new System.Data.SqlClient.SqlCommand(sqlstring,sqlConn);  Command.Connection.Open(); 
    Command.Connection.ChangeDatabase(DataBaseName); 
    try 

        Command.ExecuteNonQuery(); 

    finally 

        Command.Connection.Close(); 
    }
        }    /// <summary>
        /// 创建数据库及数据库表
        /// </summary>
        /// <param name="DBName">数据库名</param>
        /// <param name="assemblyName">配件中数据库脚本资源的名称</param>
        /// <returns></returns>    protected bool CreateDBAndTable(string DBName)
        {
            bool Restult = false;
    try 
    {
        ExecuteSql("master","CREATE DATABASE " + DBName); 
        ExecuteSql(DBName,GetSql("bbssql.txt")); 
        Restult = true;
    }       
    catch(Exception ex) 

        //次段代码为调试用可以不添加
        StreamWriter sw = new StreamWriter(@"c:\SrInforSys.txt");
        sw.WriteLine("[SrInforSys安装错误]");
        sw.WriteLine(ex.Message.ToString());
        sw.Close();                     
         }
    return Restult;
        }    /// <summary>
        /// 安装数据库
        /// </summary>
        /// <param name="stateSaver"></param>    public override void Install(IDictionary stateSaver)
        {
    base.Install (stateSaver); if(!CreateDBAndTable(this.Context.Parameters["dbname1"].ToString()))
    {
        throw new ApplicationException("创建数据库时出现严重错误!");
    }
        }在添加安装数据库时一定要有创建数据库的脚本,并且把它存为.txt文件添加到WebInstall项目中了,右击该文件(例如:database.txt)属性生成操作,该为嵌入资源(这点很中要).7) 生成WebInstall.dll文件.在解决方案资源管理器中右击WebSetup项目视图在文件系统,右击Web应用程序文件夹添加项目输出选择WebInstall(主输出)确定8) 在解决方案资源管理器中右击WebSetup项目视图自定义操作,在自定义操作界面区中右击安装添加自定义操作在Web应用程序文件夹主输出来自WebInstall(活动)添加完后右击主输出来自WebInstall(活动)属性,把customeActionData设置为/dbname=[PARA1](此处的dbname为要接受的参数名,PARA1就是前面添加的文本框中Edit1property).9) 编译WebSetup程序就可以了如果有两个或者多个数据库时,就把文本框的其他输入框设置为true(Edit2Visible, Edit3Visible , Edit4Visible),并且在自定义操作中把customeActionData属性改为/dbname1=[PARA1] /dbname2=[PARA2] /dbname3=[PARA3] /dbname4=[PARA4](有几个写几个)中间必须用一个空格分隔.三、添加启动条件在安装我们做好的程序总是要有一些启动条件的,例如必须有.net framework, SQL等.以下就以这SQL为例子1) 在解决方案资源管理器中右击WebSetup项目视图启动条件目标计算机上的要求添加注册表启动条件把名字改为search of SQL属性,更改其属性Property-------------SEARCHOFSQLRegKey---------------SOFTWARE\Microsoft\MSSQLServer\Setup(指定要搜索的表项)Root-----------------vsdrrHKLM(指定要搜索的注册表根)Value----------------SQLPath(要搜索的注册表值)2) 在启动条件界面,右击启动条件添加启动条件命名为SQL Server,更改属性Condition------------SEARCHOFSQLMessage--------------您本机上没有SQL Server 2000,请先安装!如果添加其他的启动条件类似四、卸载程序1) 在WebInstall项目中的Install.cs中添加如下代码
        private bool DeleteDatabase()
        {
    try
    {    
        ExecuteSql(此方法就是前面安装数据库的方法)("master","USE MASTER IF EXISTS (SELECT NAME FROM SYSDATABASES WHERE NAME='aa') DROP DATABASE aa"); 
        return true;
    }
    catch
    {
        return false;
    }
        }            public override void Uninstall(IDictionary savedState)
        {
    if (savedState == null)
    {
        throw new ApplicationException("未能卸载!");
    }
    else
          {
                base.Uninstall (savedState);
        if(!DeleteDatabase())
        {
             throw new ApplicationException("卸载过程中发生错误,未能卸载!");
        }
    }        
        }2) WebSetup项目的自定义操作中,右击卸载添加自定义操作在Web应用程序文件夹主输出来自WebInstall(活动)五、添加删除垃圾文件这一点不一定用的到,不过有一些老板认为做处来的安装程序太小了给用户看不时很好就添加一些垃圾文件,让安装程序变大点,安装完后又删除.在WebInstall项目中的Install.cs中添加如下代码
         private void DeleteFile()
         {
              string stLocation;
              Assembly asm = Assembly.GetExecutingAssembly();
              stLocation = asm.Location;       
              stLocation = stLocation.Substring(0,stLocation.LastIndexOf("\\")) + "\\要删除的文件名";
              System.IO.File.Delete(stLocation);                 
         }(此文件事先添加到Web应用程序文件夹下)
    把DeleteFile()方法添加到public override void Install(IDictionary stateSaver)中即可.
      

  2.   

    问 shadow841112(孤风)我用你的方法部署Install.cs 类文件按你说的写好但是在 [生成] WebInstall 的时候出现问题报错信息:1:使用泛型 类型"System.Collections.Generic.IDictionary<TKey,TValue>"需要"2"个类型参数2:"Install":成员名称不能与他们的封闭类型相同请问是什么问题。---------------
    附 Install.cs 代码[code type=c#]using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Configuration.Install;using System.Reflection;
    using System.Data;
    using System.Data.SqlClient;
    using System.IO;namespace WebInstall
    {
        [RunInstaller(true)]
        public partial class Install : Installer
        {
            public Install()
            {
                InitializeComponent();
            }
            /// <summary>
            /// 获得配置文件中嵌入的文本文件
            /// </summary>
            /// <param name="Name">文件名</param>
            /// <returns></returns>        private string GetSql(string Name)
            {
                Assembly Asm = Assembly.GetExecutingAssembly();
                Stream strm = Asm.GetManifestResourceStream(Asm.GetName().Name + "." + Name);
                StreamReader reader = new StreamReader(strm);
                return reader.ReadToEnd();
            }        /// <summary>
            /// 指定的数据库执行SQL语句
            /// </summary>
            /// <param name="DatabaseName">数据库名</param>
            /// <param name="sqlstring">SQL语句</param>
            /// <returns></returns>        private void ExecuteSql(string DataBaseName, string sqlstring)
            {
                System.Data.SqlClient.SqlCommand Command = new System.Data.SqlClient.SqlCommand(sqlstring, sqlConn);            Command.Connection.Open();
                Command.Connection.ChangeDatabase(DataBaseName);
                try
                {
                    Command.ExecuteNonQuery();
                }
                finally
                {
                    Command.Connection.Close();
                }
            }        /// <summary>
            /// 创建数据库及数据库表
            /// </summary>
            /// <param name="DBName">数据库名</param>
            /// <param name="assemblyName">配件中数据库脚本资源的名称</param>
            /// <returns></returns>        protected bool CreateDBAndTable(string DBName)
            {
                bool Restult = false;
                try
                {
                    ExecuteSql("master", "CREATE DATABASE " + DBName);
                    ExecuteSql(DBName, GetSql("bbssql.txt"));
                    Restult = true;
                }
                catch (Exception ex)
                {
                    //次段代码为调试用可以不添加
                    StreamWriter sw = new StreamWriter(@"c:\SrInforSys.txt");
                    sw.WriteLine("[SrInforSys安装错误]");
                    sw.WriteLine(ex.Message.ToString());
                    sw.Close();
                }
                return Restult;
            }        /// <summary>
            /// 安装数据库
            /// </summary>
            /// <param name="stateSaver"></param>        public override void Install(IDictionary stateSaver)
            {
                base.Install(stateSaver);            if (!CreateDBAndTable(this.Context.Parameters["dbname1"].ToString()))
                {
                    throw new ApplicationException("创建数据库时出现严重错误!");
                }
            }
        }
    }
    [code]
      

  3.   

    顶上去,我这两天也想看看是怎么给文件打包的,哪位有详细介绍的话,麻烦发到我邮箱啊:[email protected],谢谢了
      

  4.   

    不知道的人真多!!
    摘录:《程序员秘书》--源代码--进程--软件的安装部署过程--制作步骤1、在 Microsoft Visual Studio .NET 的“文件”菜单上,单击“新建”,然后单击“项目”。 
    2、在“新建项目”对话框中,选择“其他项目类型”,再选择“安装和部署”,然后在模板中选择“安装项目”。 
    3、键入 TestSetup 作为该程序的名称,然后单击确定。
    4、添加安装需要的文件:
      点击“文件系统”的“应用程序文件夹”,在右边框中点击鼠标右键,选择“添加”,选择“文件”,然后选择需要部署的文件。本例选择test.exe文件(如果该程序运行时还需要别的文件,则一起选择)。
    5、在“开始”菜单上建快捷方式:
      A、点击“文件系统”的“用户的“程序”菜单”,在右边框中点击鼠标右键,选择“添加”,选择“文件夹”,文件夹的名称为“程序员”。
      B、点击“程序员”,在右边框中点击鼠标右键,选择“创建新的快捷方式”,查找范围选择“应用程序文件夹”,选择test.exe文件,然后确定,更名为“程序员秘书”。
    6、在“桌面”建快捷方式:
      点击“用户桌面”,在右边框中点击鼠标右键,选择“创建新的快捷方式”,查找范围选择“应用程序文件夹”,选择test.exe文件,然后确定,更名为“程序员”。
    7、安装后自动运行程序:
      A、使用下面的代码创建一个 auto.vbs(auto名称可以随意) 文件:
    Set WshShell = CreateObject("WScript.Shell")
    WshShell.Run """" & Property("CustomActionData") & """",1,False
    Set WshShell = Nothing
      B、打开安装项目并转到“自定义操作编辑器”。
      C、选择“提交”节点;右击并添加一个新的“自定义操作”。
      D、浏览文件系统以添加您在步骤 A 中创建的 auto.vbs 文件。
      E、auto.vbs属性框的“CustomActionData”属性[TARGETDIR]test.exe 
    8、选择TestSetup项目,在属性框中修改,Author为“鲁勤俭”,Manufacturer为“程序员秘书开发小组”,ProductName为“程序员”,Title为“程序员”。
    10、给快捷方式添加图标:
      A、点击“文件系统”--“用户的程序菜单”--“程序员”,在右边框中点击鼠标右键,选择“属性窗口”,点击“Icon”--“浏览”,在图标对话框中,点击“浏览”,文件类型选择“可执行文件(*.exe)”,应用程序文件夹中选择test.exe文件(注:test.exe项目编译时要选择有图标才行,也可以直接在磁盘上选择一个图标文件),确定,如果有多个图标,选择一个图标,确定。
      B、同理给“用户桌面”的“程序员”的快捷方式添加上图标。
    11、创建卸载链接:
      A、在安装项目目录中,创建一个新的 Uninstall.bat 文件。
      B、在安装项目中,复制“ProductCode”属性(一个类似 [12345678-1234-1234-1234-123412341234] 的值)。
      C、编辑 Uninstall.bat,以便让其中一行包含以下内容(其中,ProductCode 是您在步骤 2 中复制的值):
      Msiexec /x ProductCode
      D、将 Uninstall.bat 添加到安装项目的应用程序文件夹。
      E、右击 Uninstall.bat 并选择“创建快捷方式”以创建快捷方式。
      F、将快捷方式放在安装项目中相应的“开始”菜单文件夹中。
      G、将快捷方式重命名为类似于“卸载 程序员秘书”,将属性ShowCmd设为vsdscMinimized。
    12、编译
    程序员秘书》提供大量总结性的源代码例子和总结性的文本资料
    初学者的好工具,程序员的技巧库详见:http://www.psec.net.cn《程序员秘书》功能展示 Flash动画:
    http://www.psec.net.cn/psec/程序员秘书.zip
      

  5.   

    cq_lqj
      7、安装后自动运行程序: 
      A、使用下面的代码创建一个   auto.vbs(auto名称可以随意)   文件: 
    Set   WshShell   =   CreateObject( "WScript.Shell ") 
    WshShell.Run   " " " "   &   Property( "CustomActionData ")   &   " " " ",1,False 
    Set   WshShell   =   Nothing 
      B、打开安装项目并转到“自定义操作编辑器”。 
      C、选择“提交”节点;右击并添加一个新的“自定义操作”。 
      D、浏览文件系统以添加您在步骤   A   中创建的   auto.vbs   文件。 
      E、auto.vbs属性框的“CustomActionData”属性[TARGETDIR]test.exe   这段代码是不是错了啊,我的怎么不能运行啊 我把[TARGETDIR]test.exe改成了[TARGETDIR]ClueTo.exe 因为我的运行程序时 ClutTo 可是安装的时候报错了.
    错误信息:  
        此Windows Installer 软件包有一个问题,完成此安装需要的脚本不能运行.请和你的支持人员或代理商联系.