在VS上用CRTL+F5运行,没问题,运行的很好,但我要用SDK编译成EXE才能发给别人看,可是编译时却提示下面的错误,百度搜了一下,有人说加using System.Windows.Forms;这句,但是我的程序里已经有这句了。好奇怪,哪位哥哥能看看是什么原因?C:\非爱不可\非爱不可>csc program.cs
Microsoft (R) Visual C# 2005 编译器 版本 8.00.50727.42
用于 Microsoft (R) Windows (R) 2005 Framework 版本 2.0.50727
版权所有 (C) Microsoft Corporation 2001-2005。保留所有权利。Program.cs(17,33): error CS0246: 找不到类型或命名空间名称“Form1”(是否缺少
        using 指令或程序集引用?)
Program.cs(17,13): error CS1502:
        与“System.Windows.Forms.Application.Run(System.Windows.Forms.Form)”最
        匹配的重载方法具有一些无效参数
Program.cs(17,29): error CS1503: 参数“1”:
        无法从“Form1”转换为“System.Windows.Forms.Form”

解决方案 »

  1.   

    我在MSDN上搜索到的:
    症状
    编译代码时,会出现下列错误消息: 
    找不到类型或命名空间名称 <类型 / 命名空间>(是否缺少 using 指令或程序集引用?)
    其中 <类型 / 命名空间> 是您要使用的类型或命名空间的名称。 原因
    可能会出现此错误的原因有多种: 
    可能拼错了您要使用的类型或命名空间的名称。 若名称不正确,编译器就无法找到您在代码中引用的类型或命名空间的定义。 这种情况经常发生,因为 C# 是区分大小写的,而您在引用类型时未能使用正确的大写。例如,请看下面的代码: 
    Dataset ds;
    这就会产生编译器错误 CS0246。 请注意 Dataset 中的“s”没有大写。 
    如果错误是对命名空间的引用,则可能没有项目中引用到的命名空间所在的程序集。 例如,您可能在使用下列命名空间: 
    using Accessibility;
    然而,如果没有项目中引用到的程序集 Accessibility.dll,就会出现编译器错误 CS0246。 
    如果错误是对类型的引用,那么可能没有适当的 using 指令,或者可能没有完全限定的类型名称。 请看下面一行代码: 
    DataSet ds;
    为了能够使用 DataSet 类型,您需要有两个东西。 首先,需要对包含 DataSet 类型定义的程序集的引用。 其次,需要针对 DataSet 所在命名空间的 using 指令。 例如,因为 DataSet 位于 System.Data 命名空间,所以在代码文件的开始处需要有下面的语句: 
    using System.Data;
    不需要第二个步骤。 然而,如果您省略了这一步骤,那么在引用 DataSet 类型时需要对它进行完全限定。 对它进行完全限定指的是每次在代码中引用它时都使用命名空间和类型。 因此,如果决定省略第二个步骤,那么需要将声明代码更改为: 
    System.Data.DataSet ds;
    这是我的:
    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Text;
    using System.Windows.Forms;里面全是VS自己加的,我并没去修改,为什么还会出错呢?
      

  2.   

    嗯好滴~~~
    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Text;
    using System.Windows.Forms;
    namespace 非爱不可
    {
        public partial class Form1 : Form
        {
            public Form1()
            {
                InitializeComponent();
            }        private void btnlove_Click(object sender, EventArgs e)
            {
                MessageBox.Show("我也爱你", "爱", MessageBoxButtons.OK, MessageBoxIcon.None, MessageBoxDefaultButton.Button1);
            }               private void btnnlove_MouseMove(object sender, MouseEventArgs e)
            {
                Random r = new Random();
                btnnlove.Top = r.Next(this.ClientSize.Height - btnnlove.Height);
                btnnlove.Left= r.Next(this.Width - btnnlove.Width); 
                bool check = btnnlove.Location.X >= (btnlove.Location.X - btnlove.Width) && btnnlove.Location.X <= (btnlove.Location.X + btnlove.Width) && btnnlove.Location.Y >= (btnlove.Location.Y - btnlove.Height) && btnnlove.Location.Y <= (btnlove.Location.Y + btnlove.Height);
            
                while(check)
                {
                    btnnlove.Top = r.Next(this.ClientSize.Height - btnnlove.Height);
                    btnnlove.Left = r.Next(this.Width - btnnlove.Width);
                    check = btnnlove.Location.X >= (btnlove.Location.X - btnlove.Width) && btnnlove.Location.X <= (btnlove.Location.X + btnlove.Width) && btnnlove.Location.Y >= (btnlove.Location.Y - btnlove.Height) && btnnlove.Location.Y <= (btnlove.Location.Y + btnlove.Height);
                   
                }
                
            }
            //测试是否真的能点到
            private void btnnlove_Click(object sender, EventArgs e)
            {
                MessageBox.Show("这也让你点到了","呜呜",MessageBoxButtons.OK,MessageBoxIcon.Warning,MessageBoxDefaultButton.Button1);        }
                   
        }
    }
      

  3.   

    查查csc命令的用法吧,加入相关的参数。
    你用vs.net界面编译不能给别人用吗?
      

  4.   

        其实你在ctrl+F5运行的时候```它已经生成exe文件了``一般是在项目文件的这个"..\非爱不可\bin\Debug\非爱不可.exe"文件夹里``` 你找找看```
      

  5.   

    晕显然不对啊~C:\非爱不可\非爱不可> csc   program.cs
    ???你的Form1.cs呢??
      

  6.   

    SDK 它编译的是Program.cs ,找不到类型或命名空间名称“Form1”(是否缺少 using   指令或程序集引用?) 其实错误就这一个,就是找不到form1的定义,后面2个错误不需要改的,定义了Form1就没有后面的2个错误了!查查看,SDK是否能够编译winform窗体程序!
      

  7.   

    解决方法就是,你把Program.cs和Form1.Designer.cs(窗体设计代码) 放到Form1.cs里面,然后直接编译FORM1.CS,因该就没有问题了!
      

  8.   

    谢谢,我已经..\bin\Debug\里面找到EXE文件了,以前用C写程序直接在文件夹里就生成EXE了,原来这个要在DEBUG里找,谢谢大家帮忙!