2010-07-20 57 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