Visual studio 2010 通过启动调试(F5)从Visual Studio 2010安装带有InstallUtil的windows服务

Visual studio 2010 通过启动调试(F5)从Visual Studio 2010安装带有InstallUtil的windows服务,visual-studio-2010,windows-services,cmd,command-line-arguments,installutil,Visual Studio 2010,Windows Services,Cmd,Command Line Arguments,Installutil,首先,我通常使用InstallUtil命令在VisualStudio命令提示符2010中安装windows服务 是否可以通过启动调试(F5)直接从visual studio安装我的windows服务 我尝试在“调试”选项卡下的windows服务项目属性中启动cmd.exe: 启动外部程序:C:\Windows\System32\cmd.exe 命令行参数:/k“C:\Program Files(x86)\Microsoft Visual Studio 10.0\VC\vcvarsall.bat”

首先,我通常使用InstallUtil命令在VisualStudio命令提示符2010中安装windows服务

是否可以通过启动调试(F5)直接从visual studio安装我的windows服务

我尝试在“调试”选项卡下的windows服务项目属性中启动cmd.exe:

启动外部程序:C:\Windows\System32\cmd.exe

命令行参数:/k“C:\Program Files(x86)\Microsoft Visual Studio 10.0\VC\vcvarsall.bat”x86(使用此InstallUtil可作为命令在cmd中启用)

使用该命令,cmd将打开。我希望在运行cmd时自动执行:

InstallUtil MyServiceName

(当cmd启动时,它已经在myservice.exe所在的调试文件夹中)


这有可能吗?

这是一个完整的解决方案

什么 启动调试(F5)时从Visual Studio自动安装windows服务,而无需向项目添加任何安装代码(project installer除外,您需要注册windows服务)

VisualStudio2010项目属性 右键单击服务项目并选择属性。转到调试部分。输入以下内容:

启动外部程序:C:\Windows\System32\cmd.exe(cmd.exe的路径)

命令行参数:/k“C:\Program Files(x86)\Microsoft Visual Studio 10.0\VC\vcvarsall.bat”x86&sc删除MyServiceName&InstallUtil MyServiceFileName.exe并退出(别忘了更改到您的路径)

MyServiceName是ProjectInstaller.cs中serviceInstaller的ServiceName属性的值(由VS生成)

MyServiceFileName是调试文件夹中已编译的*.exe文件的名称。可能和项目名称相同

那是怎么回事? 我们启动了使用VisualStudio命令提示符功能的命令提示符(我们需要InstallUtil),删除了服务的旧实例(如果它存在),并安装了新实例(如果它的StartType是自动的,则启动它)

如果你需要。。。 调试 VisualStudio2010。转到调试/附加到进程。标记“显示来自所有用户的进程”和“显示来自所有会话的进程”,以便能够查看您的windows服务。进程的名称将是您的MyServiceFileName。每次要调试进程时,都必须手动附加它们。当然,服务必须启动才能可见和可调试

为您的服务创建安装程序(MSDN) 要查看如何为windows服务创建安装程序,请转到此链接:


我设法做到了。需要在命令行中添加参数:&InstallUtil HostingWindowsService.exe,它将在第一部分之后执行(在&)之前),因此“讲”cmd语言。现在我已经自动安装了这项服务,但要卸载它,我仍然需要在cmd窗口中键入sc delete myServiceName。8小时内我无法回答我的问题,所以我将在这里临时写下:启动外部程序:C:\Windows\System32\cmd.exe(cmd.exe的路径)命令行参数/k“C:\program Files(x86)\Microsoft Visual Studio 10.0\VC\vcvarsall.bat“x86&sc删除MyServiceName&InstallUtil MyServiceFileName.exe&Exit(不要忘记更改到您的路径)MyServiceName是ProjectInstaller.cs(由VS生成)中serviceInstaller的ServiceName属性的值MyServiceFileName是调试文件夹中编译的*.exe文件的名称。可能和项目名称相同。