我刚刚创建了一个使用C#编译器以编程方式编译代码的小应用程序,它的工作非常出色。但是,我需要它做的一件事是编译Windows.Forms代码。就像,我可以用它创建一个控制台应用程序,但我无法创建基于GUI的表单。这是让我开始的链接:
http://support.microsoft.com/kb/304655
有人可以帮忙吗?
谢谢:)
更新
using System;
using System.Collections;
using System.ComponentModel;
using System.ComponentModel.Design;
using System.Diagnostics;
using System.Drawing.Design;
using System.Windows.Forms;
using System.Windows.Forms.Design;
namespace WindowsFormsApplication1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
MessageBox.Show("hi jason");
}
}
}
上面的代码是我在我的应用程序中输入的代码。当我尝试编译这段代码时,我的应用程序给了我很多错误,并且不会产生exe(显然)。但是,我的应用程序总能成功编译直接的控制台应用程序......
答案 0 :(得分:3)
你遇到了同样的问题。
您需要做的就是告诉编译器将程序编译为winexe。为此,只需将其添加到CompilerParams:
CompilerParams.CompilerOptions = "/target:winexe";
但是请注意,这将使用默认图标(看起来很糟糕!)进行编译,因此您需要添加其他参数:
if (File.Exists(iconPath))
CompilerParams.CompilerOptions = "/target:winexe" + " " + "/win32icon:" + "\"" + iConPath + "\"";
else
CompilerParams.CompilerOptions = "/target:winexe";
通过这种方式,它会在尝试插入之前检查图标是否存在,为您节省一些我必须经历的麻烦....
答案 1 :(得分:1)
编译时只需添加System
,System.Drawing
和System.Windows.Forms
程序集作为参考
答案 2 :(得分:1)
您需要包含Form1.cs和Form1.Designer.cs才能完全编译它。当然,您还必须包含对Forms和任何其他所需命名空间的引用。