C#2005开发的服务方式运行的程序,我用VS2005带的安装和部署程序做了个程序安装程序,可是安装之后只是和普通的winform程序一样拷贝程序注册需要的dll并没有注册运行程序到服务管理器里面,可是有不能通过客户端的cmd命令行方式运行installutil注册程序到服务管理器里面。请问有什么方式来发布服务方式运行的程序呢?

解决方案 »

  1.   

    1、在你的服务项目中,添加一个安装类(见下面 MSDN 引用)
    2、重新编译你的服务项目
    3、在你的安装项目中,到“自定义操作”界面,添加自定义操作,目标程序选择你的服务程序。记得要安装、卸载都要添加。---------------------
    Visual Studio 随附有安装组件,这些组件可以安装与服务应用程序相关的资源。安装组件在正在安装到的系统上注册一项单个的服务,并使服务控制管理器知道该服务的存在。当使用服务应用程序时,可以在“属性”窗口选择一个链接,以自动将适当的安装程序添加到项目中。有关安装组件以及组件的工作方式的更多信息,请参见安装组件介绍。注意: 
    服务的属性值将从服务类复制到安装程序类。如果更新服务类上的属性值,这些属性值在安装程序中将不会自动更新。
     当向项目添加安装程序时,项目中会创建一个新类(默认情况下名为 ProjectInstaller),并在其中创建适当的安装组件的实例。该类作为项目所需的所有安装组件的中心点。例如,如果向应用程序添加第二项服务并单击“添加安装程序”链接,这时并不创建第二个安装程序类,而是将第二项服务所需的其他安装组件添加到现有类。要正确安装服务,并不需要在安装程序中进行任何特殊编码。但是,如果需要向安装进程添加特殊功能,则可能偶尔需要修改安装程序的内容。有关更多信息,请参见如何:配置安装组件。 在将安装程序添加到应用程序之后,下一步是创建安装项目,该项目将安装已编译的项目文件并运行安装服务所需的安装程序。若要创建完整的安装项目,您必须将服务项目的输出添加到该安装项目,然后添加自定义操作以安装您的服务。有关安装项目的更多信息,请参见安装项目。有关自定义操作的更多信息,请参见演练:创建自定义操作。注意: 
    显示的对话框和菜单命令可能会与帮助中的描述不同,具体取决于您现用的设置或版本。若要更改设置,请在“工具”菜单上选择“导入和导出设置”。有关更多信息,请参见 Visual Studio 设置。
     将安装程序添加到服务应用程序
    在“解决方案资源管理器”中,访问要为其添加安装组件的服务的“设计”视图。 单击设计器的背景以选择服务本身,而不是它的任何内容。设计器具有焦点时,右击然后单击“添加安装程序”。 这时项目中就添加了一个新类 ProjectInstaller 和两个安装组件 ServiceProcessInstaller 和 ServiceInstaller,并且服务的属性值被复制到组件。 单击 ServiceInstaller 组件,验证 ServiceName 属性的值已为与服务本身的 ServiceName 属性的值相同。 若要确定如何启动服务,请单击 ServiceInstaller 组件并将 StartType 属性设置为适当的值。
    若要确定将要运行服务的安全上下文,请单击 ServiceProcessInstaller 组件并设置适当的属性值。有关更多信息,请参见如何:为服务指定安全上下文。重写需要为其执行自定义处理的所有方法。有关更多信息,请参见如何:重写安装组件上的默认方法。对项目中的每项附加服务执行步骤 1 到步骤 7。 注意: 
    对于项目中的每项附加服务,必须将附加的 ServiceInstaller 组件添加到项目的 ProjectInstaller 类中。步骤三中添加的 ServiceProcessInstaller 组件适用于项目中的所有单个服务安装程序。 
     创建您的安装项目和自定义操作,部署和安装您的服务。有关安装项目的更多信息,请参见安装项目。有关自定义操作的更多信息,请参见演练:创建自定义操作。