На самом деле есть три аспекта, которыми нужно поделиться:
- Файлы кодов (например, * .cs * .vb)
- XAML-файлы (включая темы)
- Файлы проекта (такие как * .csproj и * .vbproj)
Как указал Ярослав, вы можете использовать условное усложнение для файлов кода, которое поддерживается C # и VB.Net . Имейте в виду, что проекты Silverlight по умолчанию определяют символ SILVERLIGHT, поэтому вы можете использовать его в своих условных выражениях.
Еще один прием для файлов кода - использовать частичные классы . Это позволяет поместить целые блоки кода, которые могут применяться только к Silverlight или WPF (но не к обоим), в один файл. Затем выборочно включите этот файл в ваш проект.
Файлы Xaml немного сложнее, так как WPF поддерживает несколько вещей, которые не поддерживаются Silverlight (например, пользовательские MarkupExtensions и т. Д.). На практике я просто дублирую файлы XAML и объединяю их по мере необходимости.
Файлы проекта должны поддерживаться вручную, что не так уж сложно.