Мы написали небольшую библиотеку классов Windows, которая реализует методы расширения для некоторых стандартных типов (строки изначально). Я разместил это в библиотеке, чтобы любой из наших проектов мог использовать его, просто ссылаясь на него и добавляя с помощью XXX.Extensions.
Проблема возникла, когда мы хотели использовать некоторые из этих методов в Silverlight. Хотя весь код был совместим, в Silverlight нельзя ссылаться на библиотеку Windows, поэтому мы создали библиотеку Silverlight, имеющую ссылки на одни и те же файлы классов, и поместили директивы компилятора в классы, чтобы разрешить разные использования объявлений и пространств имен. Это отлично работало до сегодняшнего дня, когда я добавил новый класс в библиотеку расширений Windows и понял, что мне придется не забывать связывать этот класс с библиотекой Silverlight.
Это не идеально, и я задавался вопросом, есть ли у кого-нибудь идеи для лучшего способа совместного использования методов расширения и другого вспомогательного кода между проектами Windows и Silverlight.