Visual studio "如果输出类型== Windows应用程序则…"
本文关键字:quot Windows 应用程序 输出 studio 如果 Visual 类型 | 更新日期: 2023-09-27 18:18:18
我在Visual studio中有一些代码,如果项目的Output Type
是Windows Application
,我想包含编译。如果类型是Class Library
,我希望它被忽略。
我这样做的主要原因是包含/排除
[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Form1 form = new Form1();
Application.Run(form);
}
…还有一些逻辑围绕关闭窗体在另一个类文件,所以关闭窗体关闭应用程序,而如果它是一个类库,它不会。
我只希望Main()
被包括和显示的形式,如果它是一个Windows应用程序,否则不要。
这样做没有任何意义。Main()方法只会在程序集作为EXE项目生成时运行。如果它是作为类库构建的,那么它只是一个未使用的方法,没有人会调用它,也永远不会被丢弃。因此,为了消除它而使构建复杂化是没有意义的。
如果你真的,真的想这样做,那么你将不得不使用条件编译符号。项目+属性,生成选项卡,条件编译符号设置。和代码中的#if。
还要注意,即使构建为类库也是不必要的。作为EXE项目生成的程序集的工作原理与类库一样好。只需添加参考。在EXE和DLL程序集之间没有真正的区别是一个非常好的。net好处。在具有EXE项目和类库的常规解决方案中可以看到这一点的一种方法是将类库DLL重命名为EXE。注意,程序仍然可以运行。