У меня довольно большое решение проектов С# в Visual Studio. Я хочу перенести некоторые из этих проектов на работу в МОНО и запустить на MAC. Конечно, некоторые вещи не работают, и некоторые вещи, которые я не хочу переносить, потому что они не применимы к MAC.
Один из подходов - это решения и конфигурации проекта. Это позволяет мне исключать проекты, которые я не хочу создавать (к сожалению, Visual Studio не делает это легко видимым, но в любом случае...).
Второй подход, который мог бы работать в тандеме с первым, - использовать предком-компиляторы, такие как #if MONO, а затем сделать что-то в этой точке. Это хорошо, но затем создает несколько версий одной и той же сборки. Как отличить два от друг друга после компиляции? Это проблема?
Даже если работают два лучших подхода, иногда я хочу часть большого проекта. Я не хочу проходить через 20 или около того файлов и помещать #if MONO? Я могу захватить файл проекта вручную, но на визуальной студии нет видимости. Никто в команде не может сказать, что происходит, если они не выгружают проект и не открывают XML и не смотрят. Это звучит довольно сумасшедшим. Чтобы усугубить ситуацию, иногда проект ссылается на что-то, и я хочу исключить ссылку для МОНО. Теперь мне нужно отредактировать csproj.
Я могу разделить проект, но что, если в какой-то момент я хочу портировать еще одну платформу. Пересечениям платформы требуется, какой код может сходить с ума. Чтобы усугубить ситуацию, у меня могут быть проекты, ссылающиеся на этот крупный проект, который затем может также разделиться. Это все работает, но это вызовет перегрузку проекта, не так ли?
Я не могу найти хорошее чистое решение. Какие-нибудь советы? Есть ли стандарт для этого, я могу следовать. Если у VS было больше видимости в редактировании файла csproj, это может сработать.