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