如何为我的C#应用​​程序制作安装程序?

Moo*_*oon 58 c# installer winforms

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

我想要我的安装程序

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

我该怎么做?

sas*_*eve 63

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

  • 我可能有点迟了但VS 2012及更高版本不再支持安装程序项目.您必须使用WiX或其他第三方手段. (8认同)
  • 你可以在这里找到一些很好的教程:http://www.dreamincode.net/forums/index.php?showtopic = 56021 (7认同)
  • "添加新的安装项目"...我在安装和部署下唯一的选项是InstallShield Limited Edition.这似乎不是你的建议 - 是否缺少一步,我需要安装一些包或什么? (4认同)
  • 如果您使用的是 VS2015 或 VS2017 并且“其他项目类型”树中缺少“设置和部署”,您可以从这里安装它:[VS2015](https://marketplace.visualstudio.com/items?itemName=visualstudioclient. MicrosoftVisualStudio2015InstallerProjects) 或 [VS2017](https://marketplace.visualstudio.com/items?itemName=visualstudioclient.MicrosoftVisualStudio2017InstallerProjects) (3认同)

Ant*_*lev 16

一般来说,建议在Windows上使用基于MSI的安装.因此,如果您准备投入相当多的时间,那么WiX就是您的最佳选择.

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


Asa*_*sad 11

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

以下是如何创建自定义安装程序

[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");
    }
}
Run Code Online (Sandbox Code Playgroud)

添加安装项目

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

  • 使用属性窗口设置项目的属性

文章如何使用Visual Studio .NET创建安装程序包提供了详细信息.