void RunInternal (IProgressMonitor progressMonitor, ProgressMonitorStatusMessage progressMessage)
		{
			var commandLine = new MonoPclCommandLine () {
				List = true
			};
			commandLine.BuildCommandLine ();

			progressMonitor.ShowPackageConsole ();
			progressMonitor.Log.WriteLine (commandLine.ToString ());
			progressMonitor.Log.WriteLine ();

			RunMonoPcl (progressMonitor, progressMessage, commandLine);
		}
		void RunMonoPcl (
			IProgressMonitor progressMonitor,
			ProgressMonitorStatusMessage progressMessage,
			MonoPclCommandLine commandLine)
		{
			var aggregatedMonitor = (PackageManagementProgressMonitor)progressMonitor;

			Runtime.ProcessService.StartConsoleProcess (
				commandLine.Command,
				commandLine.Arguments,
				commandLine.WorkingDirectory,
				aggregatedMonitor.Console,
				(sender, e) => {
					using (progressMonitor) {
						ReportOutcome ((IAsyncOperation)sender, progressMonitor, progressMessage);
					}
				}
			);
		}