static void Main () не имеет смысла в библиотеке классов, однако ваш фрагмент кода должен делать именно то, что вы хотите, если он помещен в Program.cs.
Кроме того, нужно ли вам универсальное предложение else, на случай, если условие1 и условие2 не будут выполнены? Может не требоваться, но в большинстве случаев я ожидаю, что какая-то форма обратной связи, а не приложение молча завершается - конечно, зависит от того, что вы делаете.
Изменить: Это может делать то, что вы хотите, если вам просто нужно разделить логику в библиотеку
// Program.cs
[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
if(MyLib.Condition1)
{
Application.Run(new Form1());
}
else if(MyLib.Condition2)
{
Application.Run(new Form2());
}
}
// MyLib.cs
...
public static bool Condition1
{
get
{
return resultOfLogicForCondition1;
}
}
public static bool Condition2
{
get
{
return resultOfLogicForCondition2;
}
}