менеджеры пакетов, структура проекта и миграция - PullRequest
0 голосов
/ 14 февраля 2011

У меня есть решение с несколькими проектами, например, например, 10 проектов, связанных с тестированием, зависят от nunit.В настоящее время моя структура решения включает в себя папки для Tools и Lib, так что, возможно, полная загрузка nunit находится в Tools и просто dll в Lib.

Я полагаю, любой менеджер пакетов (NuGet и OpenWrap - это два, на которые я смотрю)необходимо создать свое собственное «известное» местоположение для пакетов.Так что, хотя старомодный способ управления пакетами, после ручного обновления моей папки Lib, я знаю, что каждый проект, который зависел от nunit, только что обновился.

Но если я обновлюсь с помощью менеджера пакетов, мне нужно будет посетить каждый проект, чтобы убедиться, что он обновлен и указывает на одну и ту же ссылку, да?И некоторые dll могут не быть найдены (сейчас я думаю, что unHAddins), поэтому вы не полностью освобождены от ручного управления пакетами.Смысл перехода на последние обновления не выполняется до тех пор, пока менеджер пакетов не обновит каждый проект.

Так что мне интересно, правильно ли я понимаю, каков наилучший подход для включения управления пакетами в достойныйРазмер решения - например:

0) add to source control: NuGet 'packages' folder or OpenWrap 'wraps' folder  
1) pick a dll (start with one that you beleieve has minimal dependencies)  
2) pick a project (ideally with minimal dependencies that might break)  
3) if OpenWrap, get the package you want into 'wraps'
4) for each project:  
    a) add reference to subject dll (manually if OpenWrap, NuGet will add for you)  
    b) fix compile error as needed  
    c) run tests  

Это звучит правильно?

Приветствия,
Berryl

1 Ответ

1 голос
/ 15 февраля 2011

Чтобы ответить на ваши вопросы, вам не нужно ничего делать с openwrap, все проекты импортируют все зависимости в области видимости, поэтому обновление применяется ко всему.

Я не могу отвечать за другие менеджеры пакетов, но в openwrap вы добавляете папку / wraps в систему управления версиями с пакетами, которые извлекаются при их добавлении или обновлении. Процесс будет состоять в том, чтобы сначала добавить пакет из удаленного репозитория (или создать его из существующих сборок, если его нет), и вручную удалить ссылки из / lib. В OpenWrap мы не добавляем ссылки на ваш csproj, мы добавляем их во время сборки, поэтому, если в / lib уже есть зависимость, мы не будем ее добавлять. Это означает, что вы можете добавлять все пакеты и удалять ссылки одну за другой, каждый раз выполняя свои тесты.

Надеюсь, это временная проблема, пока все dll не станут доступны в виде пакетов, что произойдет довольно быстро.

...