菜鸟为了搞定时更新,刚摸索windows service
找一篇贴子教程 写了一个简单的windows service
安装这一步出了问题
dos提示 : 在初始化安装时发生异常: System.IO.FileNotFoundException:"file:///D:\testService.exe"未能加载文件或程序集。系统找不到指定文件。
在网上尝试找解决办法,只有一种说法:路径中间有空格。可是我的目录没有空格,D:\testService.exe我异想天开把testService.exe直接拖到Installer上 意外的dos有一些新的提示
“没有RunInstallerAttribute.Yes的公共安装程序。在D:\TestService\bin\Debug\TestService.vshost.exe 程序集中可能可以找到‘Yes’属性”请高手赐教!T_T
那篇教程地址:http://www.uml.org.cn/net/200711134.asp

解决方案 »

  1.   

    要运行这个service我们还要做下边的几个步骤:  1.为我们的Service添加Installer,右键点击设计视图,选择Add Installer,VS将会为我们添加ProjectInstaller.cs,并在ProjectInstaller中添加组件 serviceInstaller1和serviceProcessInstaller1,现在我们来修改他们的属性来控制Service的安装和启动选项。在ProjectInstaller得设计视图中选中serviceProcessInstaller1,将它得Account属性选为 LocalSystem,这样以这个帐号服务启动。如果你希望系统启动时自动启动服务得话,将serviceInstaller1的StartType的属性选为Automatic,如果手动启动的话,选为manaul.  2.安装service,我们要用到IntallUtil.exe这个程序,这个程序位于C:\WINDOWS\Microsoft.NET \Framework\v2.0.50727.点击开始菜单,选择“运行”,在运行对话框中输入cmd,进入到命令行窗口,输入cd :\WINDOWS\Microsoft.NET\Framework\v2.0.50727,进入到这个目录,然后输入installutil F:\Programs\\TestService\TestService\bin\Debug\testserveice.exe, installutil后边的内容就是我们的工程生成的可执行程序的路径,情根据需要修改。  如果你给ServiceInstaller1的StartType设为Automatic的话,安装完服务,服务已经运行起来了,如果 StartType是Manual的话,你需要手动启动。现在我们进入“服务”,要打开“服务”,请单击“开始”,指向“设置”,然后单击“控制面板”。依次单击“性能和维护”、“管理工具”,然后双击“服务”。在里边你应该能够看到我们制作的Service MyFirstService.在这里边,我们可以启动,关闭服务,还可以设置服务的启动类型。然后,我们看看服务有没有正确的写入日志,我们需要进入到事件查看器,要打开“事件查看器”,请单击“开始”,指向“设置”,然后单击“控制面板”。单击“性能和维护”,单击“管理工具”,然后双击“事件查看器”。如下图所示,我们的消息已经成功的写到了系统日志里了。
      

  2.   

    1楼,file:///是系统提示里的内容
    2楼,你把那篇教程贴子的话考了一遍是什么意思?红字部分是说我路径错了?
    3楼,路径应该没错
    我的输入如下:installutil D:\TestService\bin\Debug\testserveice.exe
      

  3.   


    谁能解释一下 Yes到底是什么,我为什么安装失败
      

  4.   

    help 谁救救我啊~~ 发了2个贴了 怎么没人回答一下这是什么东东啊!
      

  5.   

    用 win+E 键,试一下,将地址栏改成“D:\TestService\bin\Debug\testserveice.exe”,看看是否能找到文件?
      

  6.   

     System.IO.FileNotFoundException:"file:///D:\testService.exe"这个是系统提示的,
    而installutil D:\TestService\bin\Debug\testserveice.exe这个是你输入的,这个有点不对吧?
      

  7.   

    System.Reflection.Assembly Asm = System.Reflection.Assembly.GetExecutingAssembly();//获取当前程序集信息
    System.IO.FileInfo fileinfo = new System.IO.FileInfo(Asm.Location);//获取当前程序集位置
    string dbpath = fileinfo.DirectoryName;//安装文件夹路径
      

  8.   

    这个问题我遇到了,是VS的版本问题,若为vs2010 则命令行InstallUtil对应的目录路径为 C:\Windows\Microsoft.NET\Framework\v4.0.30319\InstallUtil.exe  若为vs2008 则对应的目录路径为 C:\Windows\Microsoft.NET\Framework\v2.0.50727\InstallUtil.exe