示例#1
0
 public void Error(object message, DebugOption debugOption)
 {
     if (CheckDebugOption(debugOption))
     {
         Debug.LogError(debugOption.ToString() + ": " + message);
     }
 }
示例#2
0
        /// <summary>Gets command line for the process</summary>
        /// <returns>Command line arguments</returns>
        protected override string GetCommandLine()
        {
            StringBuilder cmd = new StringBuilder();

            cmd.Append("/NOLOGO ");

            if (Quiet)
            {
                cmd.Append("/QUIET ");
            }

            if (NoAutoInherit)
            {
                cmd.Append("/NOAUTOINHERIT ");
            }

            if (!string.IsNullOrEmpty(Target))
            {
                cmd.Append($"/{Target} ");
            }

            if (Pdb)
            {
                cmd.Append("/PDB ");
            }

            if (AppContainer)
            {
                cmd.Append("/APPCONTAINER ");
            }

            if (debug == DebugOption.Debug)
            {
                cmd.Append("/DEBUG ");
            }
            else if (debug != DebugOption.NoDebug)
            {
                cmd.Append($"/DEBUG={debug.ToString().ToUpperInvariant()} ");
            }

            if (Optimize)
            {
                cmd.Append("/OPTIMIZE ");
            }

            if (Fold)
            {
                cmd.Append("/FOLD ");
            }

            if (Clock)
            {
                cmd.Append("/CLOCK ");
            }

            if (Resources != null)
            {
                foreach (var r in Resources)
                {
                    cmd.Append($"/RESOURCE=\"{r}\" ");
                }
            }

            if (!string.IsNullOrEmpty(Output))
            {
                cmd.Append($"/OUTPUT=\"{Output}\" ");
            }

            if (Key?.StartsWith("@") ?? false)
            {
                cmd.Append($"/KEY=@\"{Key.Substring(1)}\" ");
            }
            else if (!string.IsNullOrEmpty(Key))
            {
                cmd.Append($"/KEY=\"{Key}\" ");
            }

            if (Includes != null)
            {
                foreach (var i in Includes)
                {
                    cmd.Append($"/INCLUDE=\"{i}\" ");
                }
            }

            if (subsystem.HasValue)
            {
                cmd.Append(((FormattableString)$"/SUBSYSTEM={SubSystem} ").ToString(InvariantCulture));
            }

            if (!string.IsNullOrEmpty(SubsystemVersion))
            {
                cmd.Append($"/SSVER=\"{SubsystemVersion}\" ");
            }

            if (flags.HasValue)
            {
                cmd.Append(((FormattableString)$"/FLAGS={Flags} ").ToString(InvariantCulture));
            }

            if (alignment.HasValue)
            {
                cmd.Append(((FormattableString)$"/ALIGNMENT={alignment} ").ToString(InvariantCulture));
            }

            if (@base.HasValue)
            {
                cmd.Append(((FormattableString)$"/BASE={Base} ").ToString(InvariantCulture));
            }

            if (stack.HasValue)
            {
                cmd.Append(((FormattableString)$"/STACK={Stack} ").ToString(InvariantCulture));
            }

            if (!string.IsNullOrEmpty(MetadataVersion))
            {
                cmd.Append($"/MDV=\"{MetadataVersion}\" ");
            }

            if (!string.IsNullOrEmpty(MetadataStreamVersion))
            {
                cmd.Append($"/MSV=\"{MetadataStreamVersion}\" ");
            }

            if (PE64)
            {
                cmd.Append("/PE64 ");
            }

            if (HighEntropyVirtualAddress)
            {
                cmd.Append("/HIGHENTROPYVA ");
            }

            if (NoCorStub)
            {
                cmd.Append("/NOCORSTUB ");
            }

            if (StripRelocations)
            {
                cmd.Append("/STRIPRELOC ");
            }

            if (!string.IsNullOrEmpty(TargetCpu))
            {
                cmd.Append($"/{TargetCpu} ");
            }

            if (Prefer32Bit)
            {
                cmd.Append("/32BITPREFERRED ");
            }

            if (EditAndContinueDeltas != null)
            {
                foreach (var δ in EditAndContinueDeltas)
                {
                    cmd.Append($"/ENC=\"{δ}\" ");
                }
            }

            if (Files != null)
            {
                foreach (var file in Files)
                {
                    cmd.Append($"\"{file}\" ");
                }
            }

            return(cmd.ToString());
        }