На этом сайте нет ни одного http://www.constraintsolving.com/solvers,, поэтому хороших может не быть.
Вы можете использовать C или C ++, связав его в управляемую / неуправляемую сборку C ++ / CLI и обернув ее в управляемые классы C ++ / CLI. Тогда вы сможете звонить из C #.