Этот подход оптимальный, но одно НО (кто платит, тот и заказывает).
Если заказчик говорит столяру как держать рубанок, то пусть заказчик сам и строгает, разве нет? Заказчик должен сказать: исходные данные тут, выходные данные такие, работать должно тут. Остальное - дело исполнителя. И если исполнитель сочтёт нужным поправить заказчика, наставив его на путь истинный, то это следует сделать. Равно как нашему гипотетическому столяру не мешало бы пояснить заказчику, что табуретку превращать в венцедержащий зад без дополнительных трудов не получится. Да и надо ли?
Как программа на C#, написанная в моно с GTK# будет чувствовать себя под масдаем. И как cil ы там устанавливать (в масдае, конечно).
Наверное, надо dll ки скопировать. Какие, куда и достатоно ли этого или что-то еще надо делать, чтобы программа начала работать в Windowsх ?
Ой.. Ой...
Господа, что-то вы в дебри полезли. CLR есть на Винде отродясь, в виде .НЭТ библиотек. Если пользоваться либами из пространства имён System, то насколько я понимаю, должно заработать вообще без дополнительных телодвижений, потому что библиотеки пространства System определены стандартом ECMA. Если используется GTK#, то оную GTK# нужно установить на винду, благо сборка такая существует.
CIL к теме отношения не имеет вообще. Это лишь бинарник, одинаковый везде и всюду, хоть на Винде, хоть на Лине хоть под Соляркой.