【问题标题】:Is there a way to Deploy a .Net application without using an MSI?有没有办法在不使用 MSI 的情况下部署 .Net 应用程序?
【发布时间】:2008-11-13 16:35:52
【问题描述】:

我有一个想要安装在终端服务器上的 .Net 程序。在过去,我创建了安装程序项目并生成了一个 MSI。但是,终端服务器要求在运行 MSI 之前关闭所有用户,我想避免这种情况。有没有办法在没有 MSI 的情况下进行安装?

有时对于某些用户帐户,我可以简单地复制 .exe 并使用它。但是对于其他用户,这样做会为明显存在的文件引发奇怪的“找不到文件”错误。 (显然,如果该 exe 没有通过 MSI“正式”安装,则必须存在注册表设置才能运行 .net exe,如果该 exe 未“正式”安装,则该 exe 可能存在也可能不存在?)

【问题讨论】:

    标签: .net windows deployment windows-installer installation


    【解决方案1】:

    是的,一般来说,除非您需要将组件安装到全局程序集缓存 (GAC) 中,否则您只需将文件复制到要运行它的计算机上的文件夹中即可。它,您需要做的就是双击 .exe 文件。

    唯一需要注意的是机器必须已经安装了正确的 .net 框架...

    【讨论】:

      【解决方案2】:

      按照建议,复制是最简单的。

      如果您想创建非 MSI 安装程序,请查看 NSIS。您还可以通过the NSIS forum 获得大力支持。

      【讨论】:

        【解决方案3】:

        我想知道为什么没有提到 ClickOnce ... 这是一个“轻量级”安装,作为开发人员只需要做最少的工作(只需填写几个字段并在项目属性中按“发布”),并使用户的工作变得简单。名字就是座右铭:用户必须启动 ClickOnce-Application 并接受它的安装。 .NET Framework 会将文件复制到一个特殊的 ClickOnce-Cache,创建一些指向应用程序的链接(如果启用),甚至可以轻松进行开箱即用的自动更新。也可以检查前置要求,例如正确的 .NET Framework 或 SQL Server。

        您可以在维基百科中找到有关它的更多信息:http://en.wikipedia.org/wiki/ClickOnce

        【讨论】:

          【解决方案4】:

          我们使用 Inno Setup (http://www.innosetup.com/isinfo.php)。我对这个工具有最好的体验。它简单、轻量、免费且快速。

          【讨论】:

            【解决方案5】:

            .Net 应用程序通常不需要“安装”。您通常可以将所需的文件放在文件系统的某个位置,并为您的用户提供启动它的快捷方式。

            但是,在某些情况下它是可取的。例如,如果您想将程序集添加到 GAC,安装可以自动执行该操作。如果您是这种情况,您是否考虑过 ClickOnce 部署?它可能能够处理你需要的东西。

            【讨论】:

            • 值得注意的是,您需要安装到 GAC 的原因相对较少,除非您知道这样做是为了特定目的,否则您可能不会这样做。
            【解决方案6】:

            如果您只想更新应用程序(而不是安装新的快捷方式或诸如此类的东西),那么我只会制作一个 WinRAR 自解压文件。您可以在其中嵌入目标目录并指定安静安装。

            【讨论】:

              【解决方案7】:

              ByteEssence InstallMaker 是另一个免费选项:

              http://www.bytessence.com/bim.html

              【讨论】:

                猜你喜欢
                • 1970-01-01
                • 1970-01-01
                • 2011-03-21
                • 1970-01-01
                • 2013-02-13
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                相关资源
                最近更新 更多