Если вам нужно автоматически обновлять файл nuspec, на самом деле это просто файл XML (как я уверен, вы знаете), поэтому есть несколько очень хороших инструментов, которые вы можете использовать из MSBuild для автоматизации создания / обновления nuspec. Из коробки MSBuild предоставляет несколько задач, которые могут обновлять или преобразовывать XML, и я использовал задачи сообщества MSBuild для настройки начального nuspec. Например, стандарт nuspec по умолчанию содержит несколько строк с жаропонижающей пластиной, которые мне не нужны, поэтому я использую задачи XmlUpdate для их удаления.
Хотя я не рассматривал сканирование файла csproj на предмет ссылок, не связанных с NuGet, я думаю, что это, вероятно, возможно после небольшого исследования. Вот несколько ссылок на записи блога, описывающие мой опыт автоматизации NuGet, они могут помочь вам начать работу:
Создание пакетов с помощью NuGet в стиле MSBuild - В эту статью включены некоторые базовые обновления NuSpec, поскольку описанный пакет не сильно отличается от типа пакета, который NuGet уже знает, как автоматизировать.
Управляйте частями MEF с помощью Nuget - Эта статья включает в себя несколько более сложных обновлений для поддержки распространения частей MEF в качестве ссылок только на время выполнения.
Если вы планируете делать это много, не хотите связываться с MSBuild или просто хотите вернуть поведение, которое вам понравилось в версии ProjectFactory.cs
до 1360, NuGet поддерживает сторонние расширения через MEF. Вы можете войти в систему управления версиями, взять предыдущий код, который вам понравился, и создать собственную команду (например, custompack
), которая обеспечивает такое поведение. Затем вы можете использовать его из командной строки следующим образом:
nuget custompack MyProject.csproj -Property Configuration=Release
Я думаю, что это действительно крутой аспект NuGet, но я сам еще не играл с ним. Вот статья, в которой объясняется, как это сделать:
Расширить командную строку NuGet
Поэтому, хотя Дэвид упомянул, что NuGet не предназначен для поддержки этого сценария, если сценарий подходит вам, вы можете пойти по этому пути, чтобы расширить NuGet в соответствии со своими потребностями.
person
Jim Counts
schedule
04.04.2012