【问题标题】:How to make an installer for my C# application?如何为我的 C# 应用程序制作安装程序?
【发布时间】:2011-01-16 02:27:04
【问题描述】:

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

我希望我的安装程序

  • 复制我的所有文件 应用程序正在使用给用户 选择的路径(将文件复制到 选择的,一些用于服务器端应用程序和 一些用于客户端)。
  • 同时安装.NET3.5
  • 检查SQL ServerSQL Server Express Edition

我该怎么做?

【问题讨论】:

    标签: c# winforms installation


    【解决方案1】:

    为什么在有汽车为你准备好的时候自己发明轮子?我只是发现这个工具使用起来超级简单直观:高级安装程序。这个one minute video 应该足以打动你。这是illustrative user guide

    【讨论】:

    • 只为每个会遇到这个(高级安装程序)的人,它是一个必须购买的产品。所以你必须弄清楚它是否值得——付钱,或者投入工作来学习 WIX,它是免费的、强大的和开源的,但学习曲线陡峭。如果您已经带来了不错的更改,那么尝试高级安装程序可能会更好(再次取决于您需要多少功率)。
    • 视频不再可用。
    【解决方案2】:

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

    这是创建自定义安装程序的方法

    [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提供了详细信息。

    【讨论】:

    • 当.NET 3.5 将安装在您的insaller 中时,您希望如何运行此代码
    • @Moon 你可以在程序描述中说它需要.NET XY
    【解决方案3】:
    1. 向您的解决方案添加新的安装项目。
    2. 从您要安装的所有项目中添加目标。
    3. 配置前置要求并选择“检查 .NET 3.5 和 SQL Express”选项。选择必须安装缺失组件的位置。
    4. 配置您的安装程序设置 - 公司名称、版本、版权等。
    5. 构建并运行!

    【讨论】:

    • 这会允许 MSI 功能吗?听起来像是需要 - “复制选择的文件......”也许你可以使用 2 个不同的安装程序?但如果安装项目不提供功能,请使用 wix。
    • 一些不错的教程可以在这里找到:dreamincode.net/forums/index.php?showtopic=58021
    • "添加一个新的安装项目" ...我在设置和部署下的唯一选项是 InstallShield Limited Edition。这似乎不是您的建议 - 是否缺少步骤,我需要安装一些软件包或其他什么?
    • 我可能有点晚了,但是 VS 2012 及更高版本不再支持安装程序项目。您必须使用 WiX 或其他第三方方式。
    • 如果您使用的是 VS2015 或 VS2017,并且“其他项目类型”树中缺少“设置和部署”,您可以从此处安装它:VS2015VS2017
    【解决方案4】:

    一般来说,建议在 Windows 上使用基于 MSI 的安装。因此,如果您准备好投入大量时间,WiX 是您的最佳选择。

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

    【讨论】:

    • 如果您需要对 MSI 进行更多控制,Wix 是您的最佳选择。但是,这确实需要更多的努力来学习。根据 Wix 的文档,MS Office 也使用 Wix 来创建他们的安装。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-30
    • 1970-01-01
    • 2021-12-02
    • 1970-01-01
    相关资源
    最近更新 更多