【问题标题】:Scripting for .NET deployment.NET 部署脚本
【发布时间】:2008-12-30 18:53:03
【问题描述】:

我正在研究部署一批 .NET 应用程序的各种选项。部署不仅仅是复制文件,我们需要停止/启动服务,调用执行数据库脚本的 EXE 文件,启动多个setup.exe 安装等等。

这些脚本将提供给第三方,第三方将向我们的各种客户服务器应用各种应用程序更新。

两个最佳选项似乎是 CS-ScriptPowerShell,但我会让投票决定。

更新:根据目前的回复,我觉得我应该澄清一下。首先,应用更新的人将是系统管理员类型;不是最终用户。因此,在这种情况下,一个成熟的安装程序WiXWise 等可能是矫枉过正。

其次,可以安全地假设 .NET 2.0 甚至 PowerShell(或 CS-Script 或其他)将安装在这些机器上。我们正在创建图像,以便我们可以指定要安装的内容。问题是一旦我们决定了一个镜像,在应用程序更新之外,我们将编写脚本,安装“新”应用程序将非常困难。

【问题讨论】:

    标签: .net scripting deployment


    【解决方案1】:

    我推荐WiX 创建安装程序。它具有完成出色工作所需的所有功能,而且它是免费的,由微软支持,具有声明性和可扩展性。它也很好地集成到了 VisualStudio 和 MSBuild-Process 中。

    【讨论】:

      【解决方案2】:

      比较 CS-Script 和 PowerShell,以下是 CS-Script 相对于 PowerShell 的一些优势:

      • CS-Script 重量更轻,更易于部署。 http://www.csscript.net/help/Deployment.html 说:“将脚本引擎可执行文件 (cscs.exe/csws.exe) 与脚本本身一起分发”。
      • C# 是一种被广泛接受的语言,具有易于访问的调试器。 PowerShell 是另一种需要学习的语言。
      • C# 可以选择编译

      【讨论】:

        【解决方案3】:

        这完全取决于您对什么感到满意以及最终用户(如果有的话)将如何使用它。所有脚本语言都允许你做你想做的事。您甚至可以使用一个简单的批处理脚本来完成此操作。

        如果要涉及最终用户并且他们不是系统管理员,我建议使用完整的安装程序。通过这种方式,他们可以以图形方式告诉他们正在做什么。如果它是供系统管理员使用的,或者只是供您自己使用,任何一种脚本语言都可以让您先完成它,即使它是 VBS。

        【讨论】:

          【解决方案4】:

          我们采取了多种方法。最后,对我们来说效果很好的是:

          • 具有良好命令行处理能力的普通可执行文件。
          • 库暴露于脚本(F#、IronPython、CS-Script)以进行操作。
          • msbuild(调用可执行文件,有时是自定义任务,有时是脚本)

          推测性:考虑使用MS Deploy(在 RC1)。它可以完成您需要做的大部分事情。我现在正在评估。

          效果不佳的地方:拥有上述 + 批处理文件的大杂烩。随着时间的推移,一切都将趋向于移动到可执行文件和安装库中,因为它是可以处理所有任务和扩展的技术。强制性的用户界面步骤是邪恶的并强制手动安装。

          CS-Script 和 Powershell 都有缺点。 CS-Script - 笨重的程序集引用方案。 Powershell:很少有人能站着看。在使用这些之前,在每个中做一个概念证明——也许你会比我更喜欢它们。我的经验对这些很轻——在概念验证后,我关闭了 IronPython。

          【讨论】:

            【解决方案5】:

            听起来您正在寻找一个用于安装和设置许多其他东西的包装包...

            作为一名前 Windows 安装程序开发人员,我强烈推荐 NSIS 以轻松创建和完全由脚本驱动的安装程序过程。 NSIS 有大量可用的插件,可让您运行外部程序、启动和停止服务、捕获命令行输出,并且基本上可以用它们的脚本语言做任何您能想象到的事情。

            NSIS 链接:http://nsis.sourceforge.net/Main_Page

            【讨论】:

              【解决方案6】:

              使用 PowerShell 作为脚本环境进行部署的缺点是您必须确保目标计算机具有 .NET Framework 2.0 和 PowerShell。为此,您需要一个脚本,因此您会回到原来的问题减去 PowerShell。

              我喜欢 PowerShell 作为脚本环境。它易于使用、灵活并且可以轻松处理部署场景。此外,由于它在 .NET 上运行并且您正在部署 .NET,因此内部人员查看和调试脚本的开销更少。

              就我个人而言,我希望有一个引导脚本来确保 PowerShell 已安装,然后使用 PowerShell 作为实际的部署脚本。

              【讨论】:

                猜你喜欢
                • 1970-01-01
                • 1970-01-01
                • 2018-08-18
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                相关资源
                最近更新 更多