几天后,我将在临时机器上安装我在开发机器(最终托管 WCF-over-SOAP 服务)上开发的 Windows 服务。
由于我有 Visual Studio 2013,因此我可以使用 VS 命令提示符来安装该服务installutil.exe
。
但目标机器运行的是普通的Windows Server 2008 R2
如何在没有的 WS2008 上安装 .NET Windows 服务installutil.exe
?
答案1
不幸的是,从 Visual Studio 2012 开始,微软删除了 Visual Studio 的内置“安装项目”功能,我表示意见是对其长期业务合作伙伴 InstallShield(由 Flexera 软件拥有)的认可。他们删除了此功能,因为他们想引导客户使用极其昂贵的第三方软件,使用 InstallShield 以图形方式构建 Windows 安装程序。现在,如果您想在 Visual Studio 2012 或 2013 中以图形方式设计安装项目,您必须:
下载免费但功能极其有限的“InstallShield LE”,它不断试图向你推销其极其昂贵的产品,并且无法完成你可能需要的 99% 有用的功能(尝试后强烈不推荐);
学习威克斯并使用免费的 WiX 工具包来构建安装程序(不是特别容易,但可行);
学习奈米科技并使用免费的 NSIS 工具包来构建安装程序(不是特别容易,但可行);
按照示例编写一个 C# 程序,以编程方式注册服务在 Stack Overflow 上。您的代码将依赖于
System.Configuration.Install
程序集,该程序集可在客户端配置文件中找到(幸运的是)。请参阅微软了解详情。这也许是“最简单”的方法;您只需将您的服务作为具有 Main 方法的 EXE 发送即可……
答案2
尽管某些文档指出“InstallUtil”是作为 Visual Studio 的一部分安装的,但即使未部署 Visual Studio,“InstallUtil”仍会存在于服务器上。根据您的 Windows 版本和所需的 .NET 框架,可以在此处找到“installutil”工具:
C:\Windows\Microsoft.NET\Framework\v4.0.30319\InstallUtil.exe C:\Windows\Microsoft.NET\Framework\v2.0.50727\InstallUtil.exe C:\WINNT\Microsoft.NET\Framework\v1.1.4322 installutil
使用与服务所针对的 .NET Framework 版本匹配的版本。
答案3
干得好:
- 安装.net框架
- 转到运行 + cmd,然后单击确定或直接转到窗口命令提示符
类型
cd C:\Windows\Microsoft.NET\Framework\v4.0.30319\InstallUtil.exe E:\test\test\bin\Debug\test.exe
E:\test\test\bin\Debug\
是我的窗口服务设置保存的路径,C:\Windows\Microsoft.NET\Framework\v4.0.30319\
是InstallUtil.exe
存在的路径。在InstallUtil.exe
存在中。和路径必须留一个空格,否则会引发错误。- 享受..您的服务已安装...现在您可以从控制面板>管理工具>服务进行检查。