0

我在 Visual Studios 中有一些代码,如果Output Type项目是Windows Application. 如果类型是Class Library我希望它被忽略。

我这样做的主要原因是包含/排除这个

[STAThread]
static void Main()
{
    Application.EnableVisualStyles();
    Application.SetCompatibleTextRenderingDefault(false);

    Form1 form = new Form1();

    Application.Run(form);
}

...还有一些关于在另一个类文件中关闭表单的逻辑,以便关闭表单关闭应用程序,而如果它是一个类库,则不会。

如果它是 Windows 应用程序,我只希望Main()包含并显示表单,否则不要。

4

1 回答 1

3

这样做是没有意义的。该 Main() 方法仅在程序集构建为 EXE 项目时才会运行。如果它是作为类库构建的,那么它只是一个未使用的方法,没有人会调用并且永远不会被忽略。因此,将构建复杂化以消除它是没有意义的。

如果您真的非常想这样做,那么您将不得不使用条件编译符号。项目+属性,构建选项卡,条件编译符号设置。和你的代码中的#if。

另请注意,即使构建为类库也是不必要的。作为 EXE 项目构建的程序集与类库一样工作。只需添加参考。EXE 和 DLL 程序集之间没有真正的区别是一个非常好的 .NET 好东西。在具有 EXE 项目和类库的常规解决方案中可以看到这一点的一种方法是将类库 DLL 重命名为 EXE。请注意,该程序仍然有效。

于 2013-06-14T11:44:34.870 回答