Существует ли надежный способ синхронизации проектов Compact Framework и Desktop с Visual Studio 2008? - PullRequest
3 голосов
/ 24 апреля 2009

Я работаю над SDK, предназначенным как для Full / Desktop .Net Framework, так и для Compact .Net Framework. Таким образом, у меня есть решение, которое имеет проекты для Compact Framework и полной структуры. Файлы проекта содержат те же исходные файлы, что и должны. Некоторые из разработчиков, которые работают со мной над этим SDK, работают только на полной стороне фреймворка. Время от времени они добавляют файл в проекты полного фреймворка, но забывают добавить его в проект компактного фреймворка. В конце концов, какая-то другая часть кода (уже в обоих проектах) ссылается на этот новый тип. Тогда сборка завершится неудачей в тот вечер, потому что проект компактного фреймворка не включает новый файл. Кто-нибудь знает инструмент или хитрость, чтобы проверить, что два файла проекта синхронизированы? Помните, что файлы не идентичны (один для компактного фреймворка, а другой для полного фреймворка).

Кстати, прежде чем вы упомянули об этом, я прочитал сообщения в блоге The Moths по этому вопросу.

Пат О

Ответы [ 2 ]

5 голосов
/ 24 апреля 2009

Да, есть хитрость ;-p Рассмотрим эту строку из моего файла проекта protobuf-net CF :

<ItemGroup>
    <Compile Include="..\protobuf-net\**\*.cs" />
</ItemGroup>

В нем говорится: «В этом проекте включите и скомпилируйте все файлы .cs из (обратно на уровень, вплоть до одноуровневой папки protobuf-net) и все подпапки».

1 голос
/ 25 апреля 2009

Похоже, что у вас уже есть непрерывная интеграция, и это действительно первый шаг в этом - чтобы все разработчики знали о нарушении сборки как можно скорее.

Если нет, ознакомьтесь с информацией о JetBrains Team City, круиз-контроле или групповой сборке Microsoft Team Systems.

В зависимости от вашего сервера управления версиями, вы также можете настроить политики регистрации. Поэтому, если конкретный файл зарегистрирован и генерируется предупреждение.

Но обычно я делюсь как можно большим количеством кода через связанные файлы. Если вам нужно иметь разный код между этими двумя, надеюсь, тонкие различия, вы можете сделать #IFDEFs для различного кода.

Извините, но на этот вопрос нет простых ответов.

...