应用程序不包含定义。

8

我有一个C#窗体应用程序。我将另一个CS文件导入程序中,现在它无法编译。每次尝试编译时,都会收到以下消息:

Application does not contain a definition for 'EnableVisualStyles'
Application does not contain a definition for 'SetCompatibleTextrenderingDefault'
Application does not contain a definition for 'Run'

当我点击错误时,它会将我带到 Programs.cs 文件中。该文件只包含以下信息:
/// <summary>
/// The main entry point for the application.
/// </summary>
[STAThread]
static void Main()
{
    Application.EnableVisualStyles();
    Application.SetCompatibleTextRenderingDefault(false);
    Application.Run(new Form1());
}

希望能得到你的帮助。

还有一点,一个测试控制台应用程序可以正常运行,但是我希望这个应用程序成为窗体应用程序。


问题不在这里,而是在你导入的其他文件中。尝试添加/删除已添加代码的部分,直到你理解哪些部分引起了错误,哪些部分是正常工作的。 - Albin Sunnanbo
“additional CS file”里面有什么? - zimdanen
听起来好像你的代码里缺少一些汇编部分。你能把文件顶部的“using…”部分发出来吗? - LightStriker
8
您在项目中添加了一个新类。这个类也被命名为“Application”。它隐藏了System.Windows.Forms.Application类。请更改名称,或在源代码文件顶部调整您的using指令,或完整拼写类名以避免冲突。 - Hans Passant
如果你遇到了“名称冲突”的问题,尝试给另一个类起个别名,例如使用“using myApp = Application”,或者使用完全限定的命名空间来解决这个问题。 - MethodMan
显示额外的CS文件内容。 - Hamlet Hakobyan
3个回答

10

您添加了一个新的using语句,用于一个已经定义了Application的命名空间(可能是您自己的),它正在优先使用。您可以使用完全限定名称来确保您针对正确的Application类:

global::System.Windows.Forms.Application.EnableVisualStyles();
global::System.Windows.Forms.Application.SetCompatibleTextRenderingDefault(false);
global::System.Windows.Forms.Application.Run(new Form1());

(只要您没有一个名为System的类,就可以省略global::,但以上方法更加健壮,以防模糊的命名空间/类名。)
其他替代方案包括重命名自定义Application类(如果它确实是您自己的),对于此文件(或使用System.Windows.Forms应用程序类的任何文件)不添加任何名称空间的using,为System.Windows.Forms.Application添加别名(这可以通过类似于“using FormApplication = System.Windows.Forms.Application;”的方式完成),等等。

0
当使用实体模型框架连接到一个名为"Application"的表的数据库时,我遇到了这个问题。一旦数据库的类生成完成,我立即有了两个"Application"类,从而导致了所述错误。在我的Program.cs文件的Main()方法中,以下代码更改解决了这个问题:
System.Windows.Forms.Application.EnableVisualStyles();         
System.Windows.Forms.Application.SetCompatibleTextRenderingDefault(false);
System.Windows.Forms.Application.Run(new MyForm());

0

我知道这是一个老贴但它适用于今天的情况。@James G上面的答案让我意识到我已经导入了一个包含“Application”定义的Web服务,这也导致了这个错误。在检查事物的过程中,请确保任何导入的服务不会意外包含“Application”。

如果有人在导入它,DynamicsSecurityAdminService就是害我出错的那个。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接