如何在Win界面上完成C#编译

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

让客户满意是我们工作的目标,不断超越客户的期望值来自于我们对这个行业的热爱。我们立志把好的技术通过有效、简单的方式提供给客户,将通过不懈努力成为客户在信息化领域值得信任、有价值的长期合作伙伴,公司提供的服务项目有:申请域名、网页空间、营销软件、网站建设、福山网站维护、网站推广。

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

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

2.包含接口ICodeCompiler

3.提供CompilerParameters的参数

4.使用CompileAssemblyFromSource方法编译。

5.运行CompilerResults

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

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

 
 
 
  1. private void button1_Click(object 
  2. sender, System.EventArgs e) 
  3. CSharpCodeProvider codeProvider = 
  4. new CSharpCodeProvider(); 
  5. // For Visual Basic Compiler try this : 
  6. //Microsoft.VisualBasic.VBCodeProvider 
  7. ICodeCompiler compiler = 
  8. codeProvider.CreateCompiler(); 
  9. CompilerParameters parameters = 
  10. new CompilerParameters(); 
  11. parameters.GenerateExecutable = true; 
  12. if (appName.Text == "") 
  13. System.Windows.Forms.MessageBox.Show(this, 
  14. "Application name cannot be empty"); 
  15. return ; 
  16. parameters.OutputAssembly = appName.
  17. Text.ToString(); 
  18. if (mainClass.Text.ToString() == "") 
  19. System.Windows.Forms.MessageBox.Show(this, 
  20. "Main Class Name cannot be empty"); 
  21. return ; 
  22. parameters.MainClass =
  23. mainClass.Text.ToString(); 
  24. parameters.IncludeDebugInformation = 
  25. includeDebug.Checked; 
  26. // Add available assemblies - this 
  27. should be enough for the simplest 
  28. // applications. 
  29. foreach (Assembly asm in AppDomain.
  30. CurrentDomain.GetAssemblies()) 
  31. parameters.ReferencedAssemblies.
  32. Add(asm.Location); 
  33. String code = textBox1.Text.ToString(); 
  34. //System.Windows.Forms.MessageBox.
  35. Show(this, code); 
  36. CompilerResults results = 
  37. compiler.CompileAssemblyFromSource
  38. (parameters, code); 
  39. if (results.Errors.Count > 0) 
  40. string errors = "Compilation failed:\n"; 
  41. foreach (CompilerError err 
  42. in results.Errors) 
  43. errors += err.ToString() + "\n"; 
  44. System.Windows.Forms.MessageBox.
  45. Show(this, errors, 
  46. "There were compilation errors"); 
  47. else 
  48. #region Executing generated executable 
  49. // try to execute application 
  50. try 
  51. if (!System.IO.File.Exists(appName.
  52. Text.ToString())) 
  53. MessageBox.Show(String.Format("Can't 
  54. find {0}", appName), 
  55. "Can't execute.", MessageBoxButtons.OK, 
  56. MessageBoxIcon.Error); 
  57. return; 
  58. ProcessStartInfo pInfo = 
  59. new ProcessStartInfo(appName.Text.ToString()); 
  60. Process.Start(pInfo); 
  61. } it55.com 
  62. catch (Exception ex) 
  63. MessageBox.Show(String.Format(
  64. "Error while executing {0}", 
  65. appName) + ex.ToString(), 
  66. "Can't execute.", 
  67. MessageBoxButtons.OK, 
  68. MessageBoxIcon.Error); 
  69. #endregion 

本文名称:如何在Win界面上完成C#编译
本文链接:http://www.mswzjz.cn/qtweb/news32/239982.html

攀枝花网站建设、攀枝花网站运维推广公司-贝锐智能,是专注品牌与效果的网络营销公司;服务项目有等

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 贝锐智能