Я трачу большую часть своего времени на разработку элементов управления для WPF и Silverlight, используя одну и ту же кодовую базу. Для этого я добавляю существующие файлы из одного проекта (скажем, Silverlight) «как ссылки» на другой (скажем, WPF). Для небольших различий я использую директивы препроцессора, такие как
#if SILVERLIGHT
...
#else
...
#endif
Код в этих блоках отображается серым цветом в зависимости от типа проекта, из которого вы открыли файл. Поэтому, если вы откроете свой файл из проекта Silverlight (где определен SILVERLIGHT), остальная часть будет серой, и Intellisense не будет работать в ней.
Чтобы обработать часть WPF с помощью IDE (с поддержкой окраски и Intellisense), вам необходимо открыть файл из проекта WPF. Когда вы пытаетесь это сделать, вы получаете сообщение о том, что «Этот документ открыт другим проектом» , и когда вы нажимаете OK, он отображает этот файл в контексте проекта Silverlight (не то, что я хотел увидеть). Поэтому мне нужно закрыть файл, снова перейти к проекту WPF и снова открыть файл. Это очень, очень раздражает.
Таким образом, вопрос заключается в следующем: есть ли какая-то настройка или надстройка, которая заставила бы Visual Studio повторно открыть файл из проекта, в котором я дважды щелкнул по нему вместо того, чтобы показать это глупое окно сообщения и показать мне этот файл «неправильный» проект?