c# - 如何为任何 exe 创建安装程序?

标签 c#

我有 .NET exe,我想为此创建一个设置,在任何登录或重新启动后,应该自动调用这个 exe。

最佳答案

在部署 .NET 应用程序时,您可以通过多种方式应对这一挑战。

在选择安装程序策略时,您必须考虑许多问题。这些包括:

  • 我打算如何分发该软件?
  • 软件是否应该以任何方式连接到互联网?
  • 软件的目标用户是什么?
  • 这些用户是否安装了特定的计算机,例如都安装了 .NET Framework?
  • 我应该如何处理软件更新问题?

在回答了其中一些问题之后,您可以大致了解应该如何分发软件。然后,您需要考虑各种安装程序,以及 Wikipedia has a convenient list that compares them ,这可能对您有所帮助。

以下是一些可能对您有用的示例:

  • ClickOnce 部署内置于 Visual Studio - 我目前最喜欢的方式,因为这对用户和开发人员来说是最简单的,因为更新和交互非常简单
  • NSIS (Nullsoft Scriptable Install System),一个用于此类安装程序的开源脚本系统。可以在此处找到有关使用 NSIS 打包和检查 .NET Framework 的精彩教程。
  • InstallShield(来自 Macrovision)- 一个经常使用的安装程序系统,但与其他解决方案不同,这个不是免费的
  • DreamShield - 我还没有尝试过这个,但它似乎是一个可行的解决方案。
  • WiX (使用 Visual Studio 插件)

应用程序的部署是软件开发中非常困难的部分,尤其是在 .NET 中,因为我们如何知道,例如,潜在用户是否已经在他们的系统上安装了 .NET Framework?或者安装的是什么版本?因此,我们必须使用 ClickOnce 和 NSIS 等工具来提供帮助。

关于如何在登录时立即启动应用程序的问题,有四种方法可以解决这个问题:

  • 添加注册表项以在登录/启动时启动 - MSDN 对此解释得很好 here.但是,大多数安装系统都允许您自动配置用于启动添加的注册表项。

  • 使用 Windows 任务计划程序来安排“任务”,换句话说,创建一个在启动时运行的任务。 here 有一个 .NET 库,我已经在我的两个按特定时间表运行的应用程序中使用了它,效果很好!

  • 将可执行文件的路径添加到位于 C:\Documents and Settings\All Users\Start Menu\Programs\Startup 的 Startup 文件夹中(适用于所有用户 - 对于单个用户用户,您可以在该路径中自定义用户名)。顺便说一句,该位置在 Windows XP 中,在其他版本的 Windows 中可能有所不同。

  • 如果您的应用程序是 Windows 服务,您已经可以通过 svchost 在启动时自动启动!有一个简单的服务配置可以让您完成此操作。

希望我有所帮助!

关于c# - 如何为任何 exe 创建安装程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1264457/

相关文章:

c# - Entity Framework Core 中的添加迁移错误

c# - 无法将类型为 'ComponentSpace.SAML2.Assertions.SAMLAssertion' 的对象转换为类型 'System.Xml.XmlElement'

c# - 我的项目文件存储在哪里

c# - SortedDictionary 抛出带有两个不同条目的 "same key already exists"

c# - 如何在特定线程上异步调用方法?

c# - 在Azure包MSBuild过程中执行.py

C# 从任意位置打开配置文件

c# - DataTable 计算值对于 Int32 类型来说太大或太小

c# - 如何处理任务等待程序中未处理的异常

c# - RabbitMQ channel 创建指南