Эта проблема предшествует NuGet.Если у вас есть проект, на который есть ссылки в двух решениях, и вы меняете ссылки на сборки в проекте, когда он открыт в одном решении, конечно, он изменит путь ссылки для этого проекта, когда он открыт в другом решении.Это всегда имело место, независимо от того, как была изменена ссылка (с NuGet или иным способом).
Но реальная проблема заключается в том, что при обновлении обновленные пакеты не отображаются в каталоге foo / packages, верно?
Простое решение - переместить Common.csproj в решение.его собственный, с его собственными ссылками, папками пакетов, процессом сборки и выпуска.Затем создайте собственный пакет NuGet со всеми соответствующими зависимостями, встроенными в него.Затем вы можете установить общий пакет в Foo и Bar, а затем команда Foo может обновить до последней версии Common, как только и когда они будут готовы.
Основной аргумент, который я слышал против этого:что вы, возможно, захотите пройтись по общему коду во время отладки, но это больше не проблема для Visual Studio 2010.
Основной вопрос, который вам нужно задать, - это кто владеет Common.csproj?Это команда Foo или команда Bar?