Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • SEARCH
  • Home
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 4025354
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 20, 20262026-05-20T10:50:11+00:00 2026-05-20T10:50:11+00:00

Actually, my question was asked a year ago in this topic – Why do

  • 0

Actually, my question was asked a year ago in this topic – Why do I see a console window when I run a dynamically compiled EXE?

Now I have the very same problem, only I don’t use the command line compiler, so that solution doesn’t suite me.

Please help.
Thanks a lot!

EDIT

Here is the code. It was mostly taken from Microsoft Support from here http://support.microsoft.com/kb/304655/en-us.

Since it’s dynamic compilation, I don’t know where to pass the notion that I don’t need the console showing.

Sorry it’s pretty big, since the string source is my whole other class.

using System.Windows.Forms;
using System.Diagnostics;
using System.CodeDom.Compiler;
using System;
using System.Drawing;
using System.IO;

namespace compile
{
public partial class Form1 : Form
{

    public Form1()
    {
        InitializeComponent();
        button1.Click += new EventHandler(button1_Click);
    }

    void button1_Click(object sender, EventArgs e)
    {
        CodeDomProvider codeProvider = CodeDomProvider.CreateProvider("CSharp");
        string Output = "Out.exe";
        Button ButtonObject = (Button)sender;

        System.CodeDom.Compiler.CompilerParameters parameters = new CompilerParameters();
        //Make sure we generate an EXE, not a DLL
        parameters.GenerateExecutable = true;
        parameters.OutputAssembly = Output;
        parameters.ReferencedAssemblies.Add("System.dll");
        parameters.ReferencedAssemblies.Add("System.Drawing.Dll");
        parameters.ReferencedAssemblies.Add("System.Windows.Forms.Dll");


        ////////////////////////////////////////////////////////////////////////////////////
        string text = @"using System;
                    using System.Windows.Forms;
                    using System.Drawing;


static class Program
{

    [STAThread]
    static void Main()
    {
        Application.EnableVisualStyles();
        Application.SetCompatibleTextRenderingDefault(false);
        Application.Run(new TestForm());
    }
}




partial class TestForm
{

    private System.ComponentModel.IContainer components = null;

    protected override void Dispose(bool disposing)
    {
        if (disposing && (components != null))
        {
            components.Dispose();
        }
        base.Dispose(disposing);
    }

    #region Windows Form Designer generated code


    private void InitializeComponent()
    {
        //System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(TestForm));
        this.MainLabel = new System.Windows.Forms.Label();
        this.MainLabel2 = new System.Windows.Forms.Label();
        this.BackBtn = new System.Windows.Forms.Button();
        this.NextBtn = new System.Windows.Forms.Button();
        this.groupBox1 = new System.Windows.Forms.GroupBox();
        this.elementPanel = new System.Windows.Forms.Panel();
        this.label1 = new System.Windows.Forms.Label();
        this.groupBox1.SuspendLayout();
        this.elementPanel.SuspendLayout();
        this.SuspendLayout();
        // 
        // MainLabel
        // 
        this.MainLabel.AutoSize = true;
        this.MainLabel.Font = new System.Drawing.Font(""Microsoft Sans Serif"", 11.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(204)));
        this.MainLabel.Location = new System.Drawing.Point(10, 9);
        this.MainLabel.Name = ""MainLabel"";
        this.MainLabel.Size = new System.Drawing.Size(126, 18);
        this.MainLabel.TabIndex = 0;
        this.MainLabel.Text = ""Вопросы теста"";
        // 
        // MainLabel2
        // 
        this.MainLabel2.AutoSize = true;
        this.MainLabel2.Font = new System.Drawing.Font(""Microsoft Sans Serif"", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(204)));
        this.MainLabel2.Location = new System.Drawing.Point(10, 38);
        this.MainLabel2.Name = ""MainLabel2"";
        this.MainLabel2.Size = new System.Drawing.Size(479, 16);
        this.MainLabel2.TabIndex = 1;
        this.MainLabel2.Text = ""Выберите правильные ответы на вопросы из предложенных вариантов."";
        // 
        // BackBtn
        // 
        this.BackBtn.Anchor = 

                ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | 

        System.Windows.Forms.AnchorStyles.Right)));
        this.BackBtn.Font = new System.Drawing.Font(""Microsoft Sans Serif"", 

       9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(204)));
        this.BackBtn.Location = new System.Drawing.Point(447, 401);
        this.BackBtn.Name = ""BackBtn"";
        this.BackBtn.Size = new System.Drawing.Size(88, 26);
        this.BackBtn.TabIndex = 3;
        this.BackBtn.Text = ""Назад"";
        this.BackBtn.UseVisualStyleBackColor = true;
        // 
        // NextBtn
        // 
        this.NextBtn.Anchor = 

        ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | 

        System.Windows.Forms.AnchorStyles.Right)));
        this.NextBtn.Font = new System.Drawing.Font(""Microsoft Sans Serif"", 

         9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(204)));
        this.NextBtn.Location = new System.Drawing.Point(541, 401);
        this.NextBtn.Name = ""NextBtn"";
        this.NextBtn.Size = new System.Drawing.Size(88, 26);
        this.NextBtn.TabIndex = 4;
        this.NextBtn.Text = ""Вперед"";
        this.NextBtn.UseVisualStyleBackColor = true;
        // 
        // groupBox1
        // 
        this.groupBox1.Anchor = 

          ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | 

          System.Windows.Forms.AnchorStyles.Bottom)
                    | System.Windows.Forms.AnchorStyles.Left)
                    | 

         System.Windows.Forms.AnchorStyles.Right)));
        this.groupBox1.Controls.Add(this.elementPanel);
        this.groupBox1.Controls.Add(this.MainLabel2);
        this.groupBox1.Controls.Add(this.NextBtn);
        this.groupBox1.Controls.Add(this.MainLabel);
        this.groupBox1.Controls.Add(this.BackBtn);
        this.groupBox1.Location = new System.Drawing.Point(2, 0);
        this.groupBox1.Name = ""groupBox1"";
        this.groupBox1.Size = new System.Drawing.Size(635, 433);
        this.groupBox1.TabIndex = 5;
        this.groupBox1.TabStop = false;
        // 
        // elementPanel
        // 
        this.elementPanel.Anchor = 

                 ((System.Windows.Forms.AnchorStyles)               ((((System.Windows.Forms.AnchorStyles.Top | 

                 System.Windows.Forms.AnchorStyles.Bottom)
                    | System.Windows.Forms.AnchorStyles.Left)
                    | 

                    System.Windows.Forms.AnchorStyles.Right)));
        this.elementPanel.AutoScroll = true;
        this.elementPanel.Controls.Add(this.label1);
        this.elementPanel.Location = new System.Drawing.Point(6, 57);
        this.elementPanel.Name = ""elementPanel"";
        this.elementPanel.Size = new System.Drawing.Size(624, 338);
        this.elementPanel.TabIndex = 5;
        // 
        // label1
        // 
        this.label1.AutoSize = true;
        this.label1.Font = new System.Drawing.Font(""Microsoft Sans Serif"", 

             9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(204)));
        this.label1.Location = new System.Drawing.Point(4, 11);
        this.label1.MaximumSize = new System.Drawing.Size(610, 0);
        this.label1.Name = ""label1"";
        this.label1.Size = new System.Drawing.Size(601, 30);
        this.label1.TabIndex = 0;
        this.label1.Text = 

                  ""mmmmmmmmmmmm\r\n"";
        // 
        // TestForm
        // 
        this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
        this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
        this.ClientSize = new System.Drawing.Size(638, 433);
        this.Controls.Add(this.groupBox1);
        //this.Icon = ((System.Drawing.Icon)(resources.GetObject(""$this.Icon"")));
        this.Name = ""TestForm"";
        this.StartPosition = 

                  System.Windows.Forms.FormStartPosition.CenterScreen;
        this.Text = ""Тест на знание английского языка"";
        this.Load += new System.EventHandler(this.TestForm_Load);
        this.groupBox1.ResumeLayout(false);
        this.groupBox1.PerformLayout();
        this.elementPanel.ResumeLayout(false);
        this.elementPanel.PerformLayout();
        this.ResumeLayout(false);

    }

    #endregion

    private System.Windows.Forms.Label MainLabel;
    private System.Windows.Forms.Label MainLabel2;
    private System.Windows.Forms.Button BackBtn;
    private System.Windows.Forms.Button NextBtn;
    private System.Windows.Forms.GroupBox groupBox1;
    private System.Windows.Forms.Panel elementPanel;
    private System.Windows.Forms.Label label1;
}



public partial class TestForm : Form
{
    public TestForm()
    {
        InitializeComponent();
    }

    private void TestForm_Load(object sender, EventArgs e)
    {
        BackBtn.Enabled = false;
        this.MouseWheel += new MouseEventHandler(TestForm_MouseWheel);
        int loc = 24 + label1.Height;
        for (int i = 0; i < 20; i++)
        {
            RadioButton newR = new RadioButton();
            newR.Text = ""test"";
            newR.AutoSize = true;
            newR.Location = new Point(4, loc);
            loc += 24;
            elementPanel.Controls.Add(newR);
        }
    }

    void TestForm_MouseWheel(object sender, MouseEventArgs e)
    {
        elementPanel.Focus();
    }

}
";
                         ////////////////////////////////////////////////////////////////////////////////////



        CompilerResults results = codeProvider.CompileAssemblyFromSource(parameters, text);

        if (results.Errors.Count > 0)
        {
            foreach (CompilerError CompErr in results.Errors)
            {
                textBox2.Text = textBox2.Text +
                            "Line number " + CompErr.Line +
                            ", Error Number: " + CompErr.ErrorNumber +
                            ", '" + CompErr.ErrorText + ";" +
                            Environment.NewLine + Environment.NewLine;
            }
        }
        else
        {
            //Successful Compile
            textBox2.ForeColor = Color.Blue;
            textBox2.Text = "Success!";
            Process.Start(Output);

        }
    }
}
    }
  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-05-20T10:50:12+00:00Added an answer on May 20, 2026 at 10:50 am

    Adding > paramters.CompilerOptions /t:winexe seemed to work for me:

            CodeDomProvider codeProvider = CodeDomProvider.CreateProvider("CSharp");
            string output = "Out.exe";
            var parameters = new CompilerParameters();
            parameters.GenerateExecutable = true;
            parameters.OutputAssembly = output;
            parameters.ReferencedAssemblies.Add("System.dll");
            parameters.ReferencedAssemblies.Add("System.Drawing.Dll");
            parameters.ReferencedAssemblies.Add("System.Windows.Forms.Dll");
            parameters.CompilerOptions = "/t:winexe";
            var results = codeProvider.CompileAssemblyFromSource(parameters, "namespace Bah { static class Program { static void Main() { System.Threading.Thread.Sleep(100000); } } }");
    

    But I also added this (for good measure):

            var psi = new ProcessStartInfo(output) {CreateNoWindow = true};
            Process.Start(output);
    

    Without the /t:winexe I got a command window, which would show up if done your way, or flicker if the ProcessStartInfo was added. With the /t:winexe option the window went away for me, but I left the ProcessStartInfo set to NoWindow also.

    I’d like to pontificate that compiling a form like that is really rigid and fragile and there doesn’t seem to be any reason to do it. When I’ve dealt with the CodeDom, we compiled dynamic user imput that represented calculations and formulas that the user had created. It was difficult to manage, and slow for large packages. An embedded scripting engine would have been a better choice, but there was no cost-effective way to rip it out and replace it, and so we were technically committed to that approach

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

I've kind of asked this question before - What does JVM flag CMSClassUnloadingEnabled actually
A few days ago i asked this question: Displaying images from Facebook photo albums
this is actually a follow up to a question I asked yesterday about problems
This is actually related to a question I asked earlier, but I was left
Disclaimer: This is not actually a programming question, but I feel the audience on
Actually, this question seems to have two parts: How to implement pattern matching? How
Important: This question isn't actually really an ASP.NET question. Anyone who knows anything about
This is actually a two part question. First,does the HttpContext.Current correspond to the current
I've looked at every question so far and none seem to actually answer this
Similar to this question ... What are the worst practices you actually found in

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.