Вопрос по powershell, nuget – Использование nuget для обновления файлов проекта вне консоли диспетчера пакетов

3

Nuget.exe поддерживает управление пакетами только на уровне файловой системы / конфигурации. Команды powershell управляют магией, которая обновляет файлы .proj.

С учетом сказанного мне нужна возможность обновить файл csproj последней версией пакета NuGet вне Visual Studio (автоматизировано).

В основном, как мне использовать Install-Package (или любой другой метод) внутри собственного внешнего сценария powershell?

UPDATE:

Я хотел бы иметь возможность добавлять ссылки на проекты вне VS по следующей причине.

В моей компании много общих библиотек, которые в некоторых случаях зависят друг от друга. Я использую TFS Nugetter для создания и публикации пакетов nuget из TFS. Я хочу убедиться, что разработчики не могут поставить в очередь сборку (пакет), если проект не может быть собран и запущен на всех более новых версиях. Это гарантирует, что все более новые версии библиотек будут работать со всеми более новыми версиями его зависимостей. Если сборка не удалась, вам нужно обновить ссылку на nuget в VS и исправить ошибки компилятора / модульные тесты.

Я просматривал исходный код NuGet и думаю, что нашел простой способ повторно использовать исходный код NuGet для изменения файлов proj вне VS (вроде).

System.Type t = System.Type.GetTypeFromProgID("VisualStudio.DTE.10.0", true);
var dte = (DTE)System.Activator.CreateInstance(t, true); 
dte.Solution.Open( 
    @"C:\Users\paul.knopf\Documents\Visual Studio 2010\Projects\SLNMemory\SLNMemory.sln");

По сути, откройте версию Visual Studio в памяти, выполните команды nuget и сохраните.

На этапе сборки, после GetWorkspace, я хотел бы запустить это в памяти и обновить все ссылки на nuget до последней версии.

Как вы думаете? Это определенно будет медленно, но мы будем работать на одной и той же базе кода и иметь всю необходимую нам функциональность.

Я добавил комментарий к сообщению в блоге. Пожалуйста, посмотрите на это. Paul Knopf
Прочитай это:blog.davidebbo.com/2011/05/… David Brabant

Ваш Ответ

1   ответ
1

Автоматизация Visual Studio, как вы описываете, безусловно, возможна.

Еще один способ, которым я смотрел, - это использовать SharpDevelop дляустановить пакеты NuGet вне Visual Studio, Командлеты NuGet PowerShell были изменены, чтобы принять решение, и вы могли автоматизировать установку, включая использование сценариев PowerShell в пакете NuGet, из командной строки. Код не был обновлен, поэтому он нацелен на старую версию NuGet, но может быть обновлен. Опять же, это похоже на ваше решение и довольно тяжеловесное решение.

Похожие вопросы