我有一个要安装在终端服务器上的 .Net 程序。在过去,我创建了安装程序项目并生成了一个 MSI。但是,终端服务器要求在运行 MSI 之前关闭所有用户,我想避免这种情况。有没有办法在没有 MSI 的情况下进行安装?
有时对于某些用户帐户,我可以简单地复制 .exe 并使用它。但是对于其他用户,这样做会为明显存在的文件引发奇怪的“找不到文件”错误。(显然,如果该 exe 没有通过 MSI“正式”安装,则必须存在注册表设置才能运行 .net exe 可能存在也可能不存在?)
我有一个要安装在终端服务器上的 .Net 程序。在过去,我创建了安装程序项目并生成了一个 MSI。但是,终端服务器要求在运行 MSI 之前关闭所有用户,我想避免这种情况。有没有办法在没有 MSI 的情况下进行安装?
有时对于某些用户帐户,我可以简单地复制 .exe 并使用它。但是对于其他用户,这样做会为明显存在的文件引发奇怪的“找不到文件”错误。(显然,如果该 exe 没有通过 MSI“正式”安装,则必须存在注册表设置才能运行 .net exe 可能存在也可能不存在?)
是的,一般来说,除非您需要将组件安装到全局程序集缓存 (GAC) 中,否则您需要做的就是将文件复制到要运行它的计算机上的文件夹中。要运行它,所有你需要做的是双击.exe文件。
唯一需要注意的是,机器必须已经安装了正确的 .net 框架......
我想知道为什么没有提到 ClickOnce ......它是一个“轻量级”安装,作为开发人员要做的工作最少(只需填写几个字段并在项目属性中按“发布”)并使用户的事情变得容易。名字就是座右铭:用户必须启动 ClickOnce-Application 并接受它的安装。.NET Framework 会将文件复制到一个特殊的 ClickOnce-Cache,创建一些到应用程序的链接(如果启用),甚至可以轻松进行开箱即用的自动更新。还可以检查先决条件,例如正确的 .NET Framework 或 SQL Server。
您可以在 wikipedia 中找到有关它的更多信息:http ://en.wikipedia.org/wiki/ClickOnce
.Net 应用程序通常不需要“安装”。您通常可以将所需的文件放在文件系统的某个位置,并为您的用户提供启动它的快捷方式。
但是,在某些情况下它是可取的。例如,如果您想将程序集添加到 GAC,安装可以自动执行该操作。如果您是这种情况,您是否考虑过 ClickOnce 部署?它可能能够处理你需要的东西。
我们使用 Inno Setup ( http://www.innosetup.com/isinfo.php )。我对这个工具有最好的体验。它简单、轻量、免费和快速。
如果您只想更新应用程序(而不是安装新的快捷方式或诸如此类的东西),那么我只会制作一个 WinRAR 自解压文件。您甚至可以在其中嵌入目标目录并指定安静安装。
ByteEssence InstallMaker 是另一个免费选项: