В настоящее время у меня есть решение, в котором используется определенный класс из нескольких проектов C #, какой-то Silverlight, какой-то обычный. По причинам совместимости я не могу создать единый проект для этих служебных классов. Сначала я решил проблему, сделав проект библиотеки классов Silverlight, чтобы на него могли ссылаться все другие проекты.
Однако я столкнулся с другой проблемой, которая сделала невозможным использование проекта Silverlight в качестве библиотеки классов. Поэтому я решил создать два отдельных проекта библиотеки классов: один Silverlight, другой обычный. В C ++ можно добавить файл проекта в два проекта, имея только один физический файл на диске. Я заметил, что в C # он автоматически делает копию при добавлении файла во второй проект. Я решил это с помощью события сборки, которое копирует файл из обычной библиотеки в Silverlight при сборке проекта Silverlight.
Это все работает, поэтому технически проблема решена. Тем не менее, он стал слишком запутанным на мой вкус. Кроме того, другие программисты, которые не знают о моем решении, могут начать редактирование зависимого (Silverlight) файла и получить неожиданные результаты.
Итак, мой вопрос: знаете ли вы какие-либо веские причины для правильного решения этих двух проблем? Как бы вы решили это?