Inheritance: MonoDevelop.Core.Execution.ExecutionCommand
		/// <summary>
		///   Creates the execution command.
		/// </summary>
		/// <param name = "configSel">The configuration selector.</param>
		/// <param name = "configuration">The configuration.</param>
		/// <returns>The execution command.</returns>
		protected override ExecutionCommand CreateExecutionCommand (ConfigurationSelector configSel, DotNetProjectConfiguration configuration)
		{
			if (this.CompileTarget != CompileTarget.Exe) {
				return base.CreateExecutionCommand (configSel, configuration);
			}

			if (this.projectType == MonobjcProjectType.None) {
				return base.CreateExecutionCommand (configSel, configuration);
			}

			// Infer application name from configuration
			MonobjcProjectConfiguration conf = (MonobjcProjectConfiguration)configuration;
			String applicationName = this.GetApplicationName (configSel);
			conf.ApplicationName = applicationName;
			
			switch (this.ApplicationType) {
			case MonobjcProjectType.CocoaApplication:
				{
					// Create the bundle maker to get the path to the runtime
					BundleMaker maker = new BundleMaker (applicationName, conf.OutputDirectory);
					conf.Runtime = maker.Runtime;
				}
				break;
			case MonobjcProjectType.ConsoleApplication:
				{
					// Build the command line
					conf.Runtime = FileProvider.GetPath (this.TargetOSVersion, "runtime");
					conf.CommandLineParameters = this.GetOutputFileName (configSel);
				}
				break;
			default:
				throw new NotSupportedException ("Unsupported application type " + this.ApplicationType);
			}

			// Create the command
			MonobjcExecutionCommand command = new MonobjcExecutionCommand (conf);
			command.UserAssemblyPaths = this.GetUserAssemblyPaths (configSel);

			return command;
		}
 /// <summary>
 ///   Initializes a new instance of the <see cref = "MonobjcDebuggerStartInfo" /> class.
 /// </summary>
 /// <param name = "command">The CMD.</param>
 public MonobjcDebuggerStartInfo(MonobjcExecutionCommand command)
     : base(new SoftDebuggerListenArgs (command.ApplicationName, IPAddress.Loopback, 0))
 {
     this.ExecutionCommand = command;
 }
 public MonobjcDebuggerStartInfo(IPAddress address, int debugPort, MonobjcExecutionCommand cmd)
     : base(cmd.AppName, address, debugPort)
 {
     ExecutionCommand = cmd;
 }
        protected override ExecutionCommand CreateExecutionCommand(ConfigurationSelector configSel, DotNetProjectConfiguration configuration)
        {
            var conf = (MonobjcProjectConfiguration)configuration;
            string bundleName = Path.GetFileNameWithoutExtension(conf.CompiledOutputName);
            var cmd = new MonobjcExecutionCommand(conf.AppDirectory, bundleName, conf.CommandLineParameters, conf.EnvironmentVariables, conf.DebugMode);

            // FIXME: Should this be the assembly inside the .app instead?
            cmd.UserAssemblyPaths = GetUserAssemblyPaths(configSel);

            return cmd;
        }