2010-02-12 109 views
50

我在Visual Studio 2008上创建了一个应用程序(C#,Windows Forms),现在我想让这个应用程序的安装程序。如何才能做到这一点?如何为我的C#应用​​程序制作安装程序?

我想我的安装程序

  • 复制所有文件,我的 应用程序使用用户 选择的道路(将文件复制到 选择的,一些服务器端应用程序和 一些为客户端)。
  • 还要安装.NET 3.5
  • 检查SQL ServerSQL Server Express Edition

我该怎么办呢?

回答

59
  1. 将新的安装项目添加到您的解决方案中。
  2. 添加您想要安装的所有项目的目标。
  3. 配置预先需求并选择“检查.NET 3.5和SQL Express”选项。选择必须安装缺少组件的位置。
  4. 配置您的安装程序设置 - 公司名称,版本,版权等
  5. 建立并去!
+0

这会允许MSI功能吗?听起来像是需要 - “复制选择的文件...”也许你可以逃脱2个不同的安装程序?但如果安装项目不提供功能,请使用wix。 – si618 2010-02-12 10:34:34

+0

如果您需要一些特定的安装逻辑,您可以编写一些代码(并添加您自己的表单),以完成您需要的工作。 – sashaeve 2010-02-12 10:51:51

+0

“添加您想要安装的所有项目的目标。” 怎么..我不知道它的任何东西... – Moon 2010-02-12 10:54:38

11

一般来说,建议在Windows上使用基于MSI的安装。因此,如果您准备投入相当一段时间,WiX就是要走的路。

如果你想要更简单的东西,请使用InnoSetup

8

有几种方法,其中两种如下。提供自定义安装程序或安装项目。

下面是如何创建一个自定义安装

[RunInstaller(true)] 
public class MyInstaller : Installer 
{ 
    public HelloInstaller() 
     : base() 
    { 
    } 

    public override void Commit(IDictionary mySavedState) 
    { 
     base.Commit(mySavedState); 
     System.IO.File.CreateText("Commit.txt"); 
    } 

    public override void Install(IDictionary stateSaver) 
    { 
     base.Install(stateSaver); 
     System.IO.File.CreateText("Install.txt"); 
    } 

    public override void Uninstall(IDictionary savedState) 
    { 
     base.Uninstall(savedState); 
     File.Delete("Commit.txt"); 
     File.Delete("Install.txt"); 
    } 

    public override void Rollback(IDictionary savedState) 
    { 
     base.Rollback(savedState); 
     File.Delete("Install.txt"); 
    } 
} 

要添加一个安装项目

  • 菜单文件 - > - >项目 - - >其他项目类型 - 项目>设置 和部署

  • 设置属性,在属性窗口

文章How to create a Setup package by using Visual Studio .NET提供细节。

+0

当.NET 3.5将被安装在你的运行版中时,你期望运行这段代码 – Moon 2010-02-12 10:46:59

+0

@Moon你可以在程序描述中说它需要.NET XY – WiiMaxx 2014-08-06 12:33:11

3

为什么自己发明轮子,而有一辆车为你准备好?我只是发现这个工具使用起来非常简单直观:高级安装程序。这one minute video应该足以让你印象深刻。这里是illustrative user guide

相关问题