2015-04-08 1 views
6

Мой проект имеет зависимость от определенного пакета NuGet (Jint, если быть конкретным). Исправлена ​​ошибка, связанная с багажом этого проекта пару месяцев назад, которую мне нужно иметь в моем проекте, но обновление еще не было перенесено на NuGet.org.Что делать, когда NuGet не имеет последних обновлений?

Каковы некоторые лучшие методы борьбы с этой ситуацией?

Вещи Я рассмотрел:

  1. СВЕСТИ источника и поместить его прямо в мой проект. Я действительно не хочу этого делать, потому что это загрязнит мое репо с источником какого-то другого проекта.

  2. Создайте источник и скопируйте DLL в мой проект, возможно, поместите .dll в репо. Кажется, все в порядке, но мне обычно не нравится проверять двоичные файлы в моем исходном контроле.

  3. Постройте источник, пакет в пакет NuGet и отправьте его в приватную подачу NuGet. Это похоже на наименее худшее решение, но большая боль.

Если кто-то успешно справился с этим сценарием раньше, я хотел бы услышать, каков ваш подход.

+2

Вы просили авторов опубликовать изменения в NuGet? Они могут быть готовы сделать это, если они знают, что кто-то ждет его. –

+1

Как владелец нескольких пакетов, которые я не являюсь автором, я определенно соглашаюсь с ними связаться. Если я больше не буду использовать пакет в текущем проекте, я не обновляю его, пока кто-то не спросит. Кроме того, как только они спрашивают, что я обычно предлагаю передать владение, так как они явно более инвестированы, чем я, так что будьте готовы к этому :). Говоря, я очень забочусь о создании пакетов, чтобы их было легко обновить и проверить. –

+1

Это и хорошие комментарии. Смешно, что это не перешло мне в голову - я типичный инженер, и мне не нравится разговаривать с людьми! : D Я сделаю это, но меня все еще интересуют возможные решения для сценариев, где это не работает или не может работать. –

ответ

0

Я рекомендовал бы с опцией # 2:

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

Вот почему:

  • Easy
  • быстро и легко разблокировать любой вопрос вы имеете.
  • Авторы библиотек регулярно обновляются, поэтому я бы предположил, что вы скоро опубликуете свое исправление.

Теперь, если авторы редко обновлялись, я бы больше склонялся к варианту № 3. Кроме того, если вы работаете в корпоративной среде, и вы видели, что этот пакет (и другие) делится между группами разработчиков, опять же, №3 будет иметь больше смысла. Наконец, если у вашей компании было сильное присутствие в юридической команде, снова № 3 будет иметь больше смысла, поскольку это даст вам контроль над тем, какие пакеты были использованы внутри страны.

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

Смежные вопросы