У нас есть много собственных библиотек, которыми мы хотели бы поделиться между проектами внутри компании. Вот некоторые из требований:
- исходники библиотеки хранятся в репозиториях, отделенных от конечных проектов
- конечные проекты включают библиотеки через NuGet
- должна быть возможность легко проверить исходный код любой данной библиотеки во время работы над конечным проектом
Настройка нашего частного репозитория NuGet не проблема, но управление источниками есть. Мы попытались раскрыть источники через исходный сервер, и это вроде работает, но не совсем: VS загружает исходные коды при отладке внешнего кода, но не при попытке перейти к определению / реализации. По сути, вы можете перейти к исходному коду только при отладке, что не совсем то, что нам нужно.
Итак, вопросы:
- какие существуют способы предоставления доступа к исходному коду внутренних библиотек без необходимости иметь код в том же репо / решении
- Есть ли способ настроить комбо-сервер Symbol Server / NuGet, чтобы VS использовал символы для навигации, а не только для отладки?
Использование ReSharper / других надстроек является опцией.
c#
source-code
closed-source
nuget
Dyppl
источник
источник
Ответы:
Что должно сработать, так это просто проверить исходный код пакета NuGet и открыть решение в отдельном экземпляре Visual Studio.
Visual Studio имеет хитрый способ переключения между кодами в открытых экземплярах, решая, на что вы ссылались. Первый раз, когда это случилось со мной во время отладки, было откровением.
Основная проблема, с которой вы сталкиваетесь, заключается в том, чтобы проверенный код для зависимого пакета представлял ту же версию, что и ваша ссылка NuGet в основном проекте. Не проблема, если вы следуете политике всегда использовать самую последнюю версию вашего пакета.
Еще одним преимуществом этого подхода является то, что если пакет необходимо изменить, вы можете внести изменения тут же.
источник
Может быть, вы можете использовать https://github.com/GitTools/GitLink . Он добавляет в файл pdb ссылку, указывающую на хранилище, так что Visual Studio будет извлекать исходный код оттуда, а затем вам просто нужно включить файл pdb в ваш пакет nuspec, и ему не понадобится исходный сервер.
источник
Так что это не идеальное решение, но вы упоминаете, что вы можете использовать Resharper; с помощью dotPeek и resharper вы можете перейти к разборке исходного кода, это то, что я использую на работе, где у нас есть настройки, аналогичные вашей.
Я нахожу комбинацию сервера символов, которую вы упомянули, и просмотра разборки обычно достаточно, чтобы выяснить, что происходит.
Надеюсь, это поможет.
Изменить: Перечитав ваш вопрос, я понимаю, что вы специально просите, чтобы иметь возможность просматривать исходный код, который не является. Тем не менее, надеюсь, это будет кому-то полезно.
источник