2013-07-10 2 views
2

Это может быть помечено как «не настоящий вопрос», но я действительно смущен тем, что NuGet вписывается в развертывание WiX (о чем вы можете догадаться по вопросам в конце. .)Руководство по интеграции WiX, TeamCity и NuGet

Текущая ситуация

Наш TeamCity сборки создает WiX Ожог (3.6) инсталляторы для наших WinForms продуктов, которые FTP'd на наших серверах. Приложения называют наши веб-службы, чтобы определить, есть ли более поздняя версия, на которую она имеет право, и если это так загружает ее в фоновом режиме, чтобы она была готова к установке при следующем запуске приложения.

Новое требование

У нас есть некоторые новые функциональные возможности, которые включены в нашу с # раствор через пакет NuGet. Пакет не потребуется 90% наших клиентских установок из-за специфических функций в пакете, поэтому, вероятно, потребуется его собственный msi. Пакет NuGet, о котором идет речь, не является нашим и находится на одном из наших серверов поставщиков и требует проверки подлинности.

Я как-то новое в мир NuGet, и не могу получить мою голову вокруг, где она вписывается в WiX ...

  • ли я каким-то образом включить пакет NuGet как часть сборки CI и включить его в установщик WiX, чтобы он не загружался с сайта поставщиков (это разрешило проблему аутентификации)?

  • Создать новый MSI, который включает компоненты в пакете Nuget, но фактически не использовать NuGet для окончательного развертывания клиента вообще? (Это позволит решить ряд проблем, но потенциально может понадобиться работа каждый раз, когда пакет NuGet обновляется и не чувствует себя хорошо!)

  • Я создаю безглавой пакет MSI, который загружается отдельно как часть установки записи ? Клиенты не смогут ввести требуемую аутентификацию, поскольку они не будут иметь ее.

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

Большое спасибо, Confused!

ответ

3

Самый простой способ обработки сторонних пакетов - использовать их распространяемые инсталляторы для конечных пользователей (например, с помощью Burn). Предположительно, они рассмотрели все вопросы, требуемые для своих целевых платформ, будут продолжать делать это в будущем и могут даже обеспечить механизм обновления. Это определенно справедливо для многих компонентов Microsoft, таких как среда .NET и время автономной работы VC.

Nuget предназначен для разработчиков. Он загружает зависимости, добавляет их и, возможно, исходный код, элементы конфигурации и т. Д. В проекты. Таким образом, он обычно не используется для распространения библиотек для конечных пользователей. Если библиотека не имеет собственного установщика для конечных пользователей, вы можете (если разрешено лицензией) включить его в настройку для своего продукта или в отдельную настройку, как вы предлагаете.

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

+0

Спасибо за то, что Том. Он заполнил недостающую часть о том, следует ли использовать nuget на клиенте. Похоже, я не единственный, так как поставщик теперь попросил нас также использовать их пакет nuget на клиенте ... –

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