2010-07-20 50 views
3

我使用topshelf,当我尝试使用“-i”选项来安装为服务我得到这个例外......请帮助我..Topshelf例外

无法转换类型'Magnum.CommandLineParser.SwitchElement'的对象来键入'Magnum.CommandLineParser.IArgumentElement'。

异常在此功能发生

static void Set(TopshelfArguments args, 
       IEnumerable<ICommandLineElement> commandLineElements) 
{ 
    var command = commandLineElements 
     .Take(1) 
     .Select(x => (IArgumentElement) x) //EXCEPTION BREAKS ON THIS LINE 
     .Select(x => x.Id) 
     .DefaultIfEmpty("commandline") 
     .SingleOrDefault(); 

    args.Command = command; 
    //leftovers 
    args.CommandArgs = commandLineElements.Skip(1).ToList(); 
} 

由于

回答

3

我们使用TopShelf安装作为服务的方式是

program.exe service install 

我相信这是它在RC Code公司的支持的唯一途径。您可以通过卸载

program.exe service uninstall 
1

看起来经过时在-i解析器被其转换成类型SwitchElement的等。试试看看它是否有效。

static void Set(TopshelfArguments args, IEnumerable<ICommandLineElement> commandLineElements) 
    { 
     var command = commandLineElements 
      .Take(1) 
      .Select(x => (ISwitchElement) x) 
      .Select(x => x.Key) 
      .DefaultIfEmpty("commandline") 
      .SingleOrDefault(); 


     args.Command = command; 
     //leftovers 
     args.CommandArgs = commandLineElements.Skip(1).ToList(); 
    } 
+0

感谢您的提示太.... – Josh 2010-07-21 06:39:24