温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

怎么在Win界面上完成C#编译

发布时间:2021-07-15 15:29:39 来源:亿速云 阅读:203 作者:chen 栏目:编程语言

这篇文章主要介绍“怎么在Win界面上完成C#编译”,在日常操作中,相信很多人在怎么在Win界面上完成C#编译问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”怎么在Win界面上完成C#编译”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

本文只是可以让大家摆脱csc的约束,在Win界面上完成C#编译编译.

在C#编译过程中你必须以下面的步骤完成:

1.建立一个CSharpCodeProvider 实例(如果是使用Visual Basic则使用VBCodeProvider)

2.包含接口ICodeCompiler

3.提供CompilerParameters的参数

4.使用CompileAssemblyFromSource方法编译。

5.运行CompilerResults

6.执行C#编译好的程序

编译的代码可以是写在文本框中的字符串,当然也可以源文件。

private void button1_Click(object   sender, System.EventArgs e)   {   CSharpCodeProvider codeProvider =   new CSharpCodeProvider();   // For Visual Basic Compiler try this :   //Microsoft.VisualBasic.VBCodeProvider    ICodeCompiler compiler =   codeProvider.CreateCompiler();   CompilerParameters parameters =   new CompilerParameters();    parameters.GenerateExecutable = true;   if (appName.Text == "")   {   System.Windows.Forms.MessageBox.Show(this,   "Application name cannot be empty");   return ;   }    parameters.OutputAssembly = appName.  Text.ToString();    if (mainClass.Text.ToString() == "")   {   System.Windows.Forms.MessageBox.Show(this,   "Main Class Name cannot be empty");   return ;   }    parameters.MainClass =  mainClass.Text.ToString();   parameters.IncludeDebugInformation =   includeDebug.Checked;    // Add available assemblies - this   should be enough for the simplest   // applications.   foreach (Assembly asm in AppDomain.  CurrentDomain.GetAssemblies())   {   parameters.ReferencedAssemblies.  Add(asm.Location);   }    String code = textBox1.Text.ToString();   //System.Windows.Forms.MessageBox.  Show(this, code);    CompilerResults results =   compiler.CompileAssemblyFromSource  (parameters, code);    if (results.Errors.Count > 0)   {   string errors = "Compilation failed:\n";   foreach (CompilerError err   in results.Errors)   {   errors += err.ToString() + "\n";   }   System.Windows.Forms.MessageBox.  Show(this, errors,   "There were compilation errors");   }   else   {   #region Executing generated executable   // try to execute application   try   {   if (!System.IO.File.Exists(appName.  Text.ToString()))   {   MessageBox.Show(String.Format("Can't   find {0}", appName),   "Can't execute.", MessageBoxButtons.OK,   MessageBoxIcon.Error);   return;   }   ProcessStartInfo pInfo =   new ProcessStartInfo(appName.Text.ToString());   Process.Start(pInfo);   } it55.com   catch (Exception ex)   {   MessageBox.Show(String.Format(  "Error while executing {0}",   appName) + ex.ToString(),   "Can't execute.",   MessageBoxButtons.OK,   MessageBoxIcon.Error);   }   #endregion   }   }

到此,关于“怎么在Win界面上完成C#编译”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注亿速云网站,小编会继续努力为大家带来更多实用的文章!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI