如何为ASP.NET解决方案制作安装程序?

本文详细介绍如何使用Visual Studio创建C#项目的安装程序,并解决部署过程中遇到的问题,如.NET Framework的自动安装等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

手把手教你C#项目制作安装程序    
  1.打开你的.net,用鼠标右击你的工程(解决方案),选择add   new     project(添加新建项目)  
   
  2.选择   安装和部署项目web安装项目(也可以是Windows安装项目)  
   
  3.vs的窗口会显示文件系统,用鼠标点击左栏下的"web   application     folder"     的加号,右键选中"web   application   folder",选择"添加项目输出",  
  同时选中主输出和内容文件  
   
  4.你的工程中会新增一个yousetupname的工程,就是安装的项目  
   
  5.因为.xml,   .rpt,   .gif文件不能自动加到项目中,所以要手动加。在解决方案资源管理器中,右击YouSetup   project(你的安装项目名),选中"添加文件",然后把你的.rpt,   .xml,   .gif文件加入  
   
  6.如果你用了crystal   report,就要添加crystal   reprot的支持文件。在解决方案资源管理器中,右击YouSetup   project(你的安装项目名),选中"添加合并模块",在窗口中找到,并选中C:/Program   Files/Common   Files/Merge   Modules/DotNETCrystalReports.msm,   打开,就加入了  
   
  7.右击"目标计算机上的文件系统",选中属性,在属性窗口中,将productName设置为"你要打包的项目名"  
   
  8.右击"web应用程序文件夹",选中属性,在属性窗口中,将DefaultDocument设置为"你的默认登录页"即"起始页"  
   
  9.选中你的yousetupname工程,按右键,选中"生成";或在主菜单的"生成"中选中"生成yourSetupFileName"  
   
  10   yoursetupfilename下面会有两个文件夹   DEbug   和release   ,里边的.exe和.msi就是你要的安装文件,运行.exe,就可以安装了  
  Top

3 楼bitsbird(一瓢 在路上...)回复于 2004-06-30 11:29:09 得分 0

把.NET程序部署到没有安装.NET   Framwork的机器上  
   
  --------------------------------------------------------------------------------  
   
  摘要  
  本文讨论了如何使用Windows   Installer技术发布.NET程序,以及如何使用native代码判断目标机器上是否安装有.NET   Framework;   如果没有,将自动安装.NET   Framework然后安装作者自己的.NET程序。  
   
  --------------------------------------------------------------------------------  
   
  目录  
  本文内容  
  制作自己的安装程序  
  发布.NET   Framework  
  制作自己的native安装程序  
  使用方法  
  总结  
  作者  
   
  --------------------------------------------------------------------------------  
   
  本文内容  
  1.   使用VS.NET来制作安装程序。  
  2.   如何把.NET   Framework   部署到目标机器。  
  3.   如何使用Native代码把.NET   Framework和自己的安装程序制作为一个统一的安装程序。该程序做到如果目标机器上没有.NET   Framework,将自动安装.NET   Framework然后再自动安装作者自己的程序。  
   
  --------------------------------------------------------------------------------  
   
  制作自己的安装程序  
  在VS.NET中,我们可以通过建立"Setup   and   Deployment   Projects"项目,非常灵活方便的把自己的.NET程序制作为Windows   Installer文件。比如,我们可以很方便的定制下面这些选项:  
  1.   是否在桌面上放置快捷方式。  
  2.   注册自己的文件类型,可以通过双击该文件来使用自己的程序打开。  
  3.   注册表的处理  
  在下面的MSDN站点,我们可以获得在VS.NET中通过Setup   and   Deployment   Projects来制作自己的安装程序的示例:  
  http://msdn.microsoft.com/library/en-us/vsintro7/html/vbconDeploymentScenarios.asp  
   
  --------------------------------------------------------------------------------  
   
  发布.NET   Framework  
  .NET   Framework   1.0提供一个用来重新部署.NET的exe文件:Dotnetfx.exe.   它包含了Common   Language   Runtime和其它.NET程序运行时必不可少的内容。  
  我们可以从下面的站点下载该exe文件:  
  http://msdn.microsoft.com/downloads/sample.asp?url=/MSDN-FILES/027/001/829/msdncompositedoc.xml  
  同时,我们也可以在VS.NET安装CD或者DVD中找到该文件。  
  我们可以通过多种方式来通过运行Dotnetfx.exe把.NET   Framework部署到目标机器上:  
  1.   通过Microsoft   Systems   Management   Server部署。  
  2.   通过Active   Directory部署。  
  3.   使用第三方工具。  
  具体的信息,我们可以参阅下面的文章:  
  http://msdn.microsoft.com/library/en-us/dnnetdep/html/redistdeploy.asp  
   
  --------------------------------------------------------------------------------  
   
  制作自己的native安装程序  
  如果我们要把自己的.NET程序发布到目标机器上,同时我们不确定该目标机器是否已经安装了.NET   Framework,   那我们就需要自己设计一段unmanaged代码,来判断目标机器是否安装了.NET   Framework,   如果没有,则运行Dotnetfx.exe安装.NET   Framework,   然后利用Windows   Installer安装自己的程序。  
  在MSDN的下面网页上,我们可以获得一个使用unmanaged   C++实现的安装程序和它的源代码:  
  http://msdn.microsoft.com/downloads/default.asp?URL=/code/sample.asp?url=/msdn-files/027/001/830/msdncompositedoc.xml  
  1.   在CSettings   class中,通过读取"settings.ini",获得您自己的MSI安装文件和dotnetfx.exe的路径,以及其他您自己的设置。(比如.NET   Framework的语言版本)  
  GetCaptionText(void)  
  GetDialogText(void)  
  GetErrorCaptionText(void)  
  GetIniName(void)  
  GetProductName(void)  
  Parse()函数用来解析settings.ini文件。  
  2.   在Main.cpp文件中,全局函数FxInstallRequired()判断是否要在目标机器上安装.NET   Framework.   FxInstallRequired()会检测下面的注册表键值和dotnetfx.exe的版本和语言设置。  
  HKLM/SOFTWARE/Microsoft/.NETFramework/policy/v1.0  
  3.如果需要安装.NET   Framework,   在全局函数ExecCmd()中调用下面的命令silent安装dotnetfx.exe:  
  dotnetfx.exe   /q:a   /c:"install   /l   /q"  
  4。   在ExecCmd()全局函数中调用下面的命令安装您自己的MSI文件:  
  msiexec   /i   <your   MSI   file>   REBOOT=ReallySuppress  
   
  --------------------------------------------------------------------------------  
   
  使用方法  
  如果我们使用上面的native代码作为自己的安装程序,那么我们可以通过下面的步骤把自己的.NET程序和它结合在一起:  
  1.把您自己的.NET程序制作成为Windows   Installer   (.MSI)文件。  
  2.打开"settings.ini"文件,在"Msi"   key中设置您自己的.NET程序的MSI文件路径和文件名;在"FxInstallerPath"   Key中,设置dotnetfx.exe的路径。具体的参数信息,您可以从下面文章中得到:  
  http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnnetdep/html/redistdeploy.asp  
  3.   把"setup.exe",   "settings.ini",   "dotnetfx.exe"和您自己的MSI安装文件,发送到目标机器上,然后运行"setup.exe",   安装程序会自动检测是否有.NET   Framwork,   如果没有,将首先运行dotnetfx.exe。  
  通过上述步骤,您可以将自己的.NET程序成功的部署到没有安装.NET   Framwork环境的机器上。Top

4 楼tomorrowstar(以前我看事物是用肉眼去看!)回复于 2004-06-30 14:21:40 得分 0

我用Vs.net制作安装文件根本不行  
  我就是按http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vsintro7/html/vbconDeploymentScenarios.asp的说明操作的  
  提示unable   to   build   project   output   group   ('content   file   from   PhysicSell(active)')  
  怎么回事Top

5 楼Qlike(℡鱼儿)回复于 2004-06-30 14:24:53 得分 0

http://dev.youkuaiyun.com/develop/article/20/20504.shtmTop

6 楼goody9807(http://goody9807.cnblogs.com)回复于 2004-06-30 14:44:01 得分 40

步骤:    
  1、添加一个新项目->选择类库模板->命名为DBCustomAction    
  2、单击项目右键->添加新项->选择安装程序类(命名为DBCustomAction.cs)    
  3、在服务器资源管理器中添加->连接到数据库->指定用户密码(选择允许保存密码)->数据库选择master    
  4、切换到DBCustomAction.cs的视图状态->将服务器资源管理器数据库连接中的master.dbo拖动到designer中    
  5、添加一个新项sql.txt(注意要使用小写),输入下列sql代码    
  CREATE   TABLE   [dbo].[MK_Employees]   (    
  [Name]   [char]   (30)   COLLATE   SQL_Latin1_General_CP1_CI_AS   NOT   NULL   ,    
  [Rsvp]   [int]   NULL   ,    
  [Requests]   [nvarchar]   (4000)   COLLATE   SQL_Latin1_General_CP1_CI_AS   NULL      
  )   ON   [PRIMARY];    
   
  ALTER   TABLE   [dbo].[MK_Employees]   WITH   NOCHECK   ADD      
  CONSTRAINT   [PK_MK_Employees]   PRIMARY   KEY   CLUSTERED      
  (    
  [Name]    
  )   ON   [PRIMARY];    
  (P.S:也可以直接用SqlServer导出)    
   
  6、在sql.txt的右键属性中->生成操作->嵌入的资源    
  7、将DBCustomAction.cs切换到代码视图,添加下列代码    
  private     string   GetSql(string   Name)    
              {    
                    try    
                    {    
                          Assembly   Asm   =   Assembly.GetExecutingAssembly();    
                          Stream   strm   =   Asm.GetManifestResourceStream(Asm.GetName().Name   +   "."+Name);    
                          StreamReader   reader   =   new   StreamReader(strm);    
                          return   reader.ReadToEnd();    
                    }    
                    catch   (Exception   ex)    
                    {    
                          Console.Write("In   GetSql:"+ex.Message);    
                          throw   ex;    
                    }    
              }    
   
              private   void   ExecuteSql(string   DataBaseName,string   Sql)    
              {    
                    System.Data.SqlClient.SqlCommand   Command   =   new   System.Data.SqlClient.SqlCommand(Sql,sqlConnection1);    
   
                    Command.Connection.Open();    
                    Command.Connection.ChangeDatabase(DataBaseName);    
                    try    
                    {    
                          Command.ExecuteNonQuery();    
                    }    
                    finally    
                    {    
                          Command.Connection.Close();    
                    }    
              }    
   
   
              protected   void   AddDBTable(string   strDBName)    
              {    
                    try    
                    {    
                          ExecuteSql("master","CREATE   DATABASE   "+   strDBName);    
                          ExecuteSql(strDBName,GetSql("sql.txt"));    
                    }    
                    catch(Exception   ex)    
                    {    
                                Console.Write("In   exception   handler   :"+ex.Message);    
                    }    
              }    
   
              public   override   void   Install(System.Collections.IDictionary   stateSaver)    
              {    
                      base.Install(stateSaver);    
                            AddDBTable(this.Context.Parameters["dbname"]);    
              }    
   
   
  8、再添加一个新项目,(选择添加到解决方案中)->项目类型为安装项目->命名为DBCustomAction   Installer    
  9、选择应用程序文件夹->添加->项目输出->主输出    
  10、在方案资源管理器中->右键安装项目(DBCustomAction   Installer)->视图->用户界面    
  11、选中启动结点->添加对话框->文本A    
  12、选动文本框A->右键->上移一直到最顶端    
  13、选择文本框A属性->修改BannerText,(Specify   Database   Name)    
  14、修改BodyText(This   dialog   allows   you   to   specify   the   name   of   the   database   to   be   created   on   the   database   server.   )    
  15、修改EditLabel1(Name   of   DB),修改Edit1Porperty(CUSTOMTEXTA1),将其他Edit2,3,4的Edit(2,3,4)Visible属性设为false;    
  16、在方案资源管理器中->右键安装项目(DBCustomAction   Installer)->视图->自定义操作    
  17、选中安装结点->添加->双击应用程序文件夹->主输出来自DBCustomAction(活动)->右键属性->CustomActiveData属性修改为/dbname=[CUSTOMTEXTA1]    
  18、编译生成,OK!      

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值