0

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 が生成されません (明らかに)。しかし、私のアプリケーションは常にストレートアップコンソールアプリを正常にコンパイルします...

4

3 に答える 3

3

あなたは私と同じ問題を抱えています。

必要なのは、プログラムを winexe としてコンパイルするようにコンパイラに指示することだけです。これを行うには、これを CompilerParams に追加するだけです。

CompilerParams.CompilerOptions = "/target:winexe";

ただし、デフォルトのアイコンでコンパイルされることに注意してください(これはひどいように見えます!)。そのため、それに追加の引数を追加する必要があります。

if (File.Exists(iconPath))
    CompilerParams.CompilerOptions = "/target:winexe" + " " + "/win32icon:" + "\"" + iConPath + "\"";
else
    CompilerParams.CompilerOptions = "/target:winexe";

このようにして、アイコンを配置する前にアイコンが存在するかどうかを確認し、私が経験しなければならなかった少しの手間を省きます....

于 2010-09-18T20:35:37.650 に答える
1

コンパイル時にSystemSystem.Drawingおよびアセンブリを参照として追加するだけです。System.Windows.Forms

于 2010-04-17T19:02:24.713 に答える
1

完全にコンパイルするには、Form1.cs と Form1.Designer.cs の両方を含める必要があります。もちろん、フォームやその他の必要な名前空間への参照も含める必要があります。

于 2010-04-17T19:06:08.107 に答える