有没有办法部署.Net应用程序而不使用MSI?

我有一个.Net程序,我想安装在terminal服务器上。 在过去,我创build了安装程序项目并生成了一个MSI。 但是,terminal服务器要求所有用户在运行MSI之前先closures,我想避免这种情况。 有没有办法做一个没有微星安装?

有时对于某些用户帐户,我可以简单地复制.exe并使用它。 但是,对于其他用户这样做会引发明显存在的文件错误的“文件未find”错误。 (显然有registry设置必须存在运行.net EXE可能会或可能不会存在,如果EXE尚未“正式”通过MSI安装?)

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

唯一需要注意的是机器必须安装正确的.NET框架。

如所建议的,复制将是最简单的。

如果你想创建一个非MSI安装程序,请查看NSIS 。 你也可以在NSIS论坛上得到很大的支持。

我想知道为什么没有提到ClickOnce …这是一个“轻量级”的安装,只需要很少的工作就可以做一个开发人员(只需填写几个字段,然后按项目属性中的“发布”),让用户轻松完成任务。 该名称是座右铭:用户必须启动ClickOnce应用程序并接受它的安装。 .NET框架将文件复制到一个特殊的ClickOnce缓存,创建一些链接到应用程序(如果启用),甚至允许容易的自动更新开箱即用。 先决条件也可以检查,例如正确的.NET Framework或SQL server。

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

我们使用Inno Setup( http://www.innosetup.com/isinfo.php )。 我有这个工具最好的经验。 它简单,轻便,自由和快速。

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

然而,在某些情况下,这是可取的。 例如,如果要将程序集添加到GAC,安装程序可以将其自动化。 如果您遇到这种情况,您是否考虑过ClickOnce部署? 它可能能够处理你所需要的。

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

ByteEssence InstallMaker是另一个免费选项:

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