1

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

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

4

7 回答 7

9

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

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

于 2008-11-13T16:39:47.077 回答
2

正如建议的那样,复制将是最简单的。

如果要创建非 MSI 安装程序,请查看NSIS。您还可以在 NSIS 论坛上获得大力支持。

于 2008-11-13T16:44:57.673 回答
2

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

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

于 2008-11-13T17:28:07.337 回答
1

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

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

于 2008-11-13T16:39:24.317 回答
1

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

于 2008-11-13T16:40:23.987 回答
0

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

于 2008-11-13T17:22:03.230 回答
0

ByteEssence InstallMaker 是另一个免费选项:

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

于 2008-11-14T15:49:21.390 回答