Usando o nuget para atualizar arquivos de projeto fora do Console do Gerenciador de Pacotes

O Nuget.exe suporta apenas o gerenciamento de pacotes em um sistema de arquivos / nível de configuração. Os comandos do powershell comandam a mágica que atualiza os arquivos .proj.

Com isso dito, eu preciso da habilidade de atualizar um arquivo csproj com a versão mais recente de um pacote NuGet fora do visual studio (automatizado).

Basicamente, como eu uso o Install-Package (ou qualquer um dos outros métodos) dentro de um script PowerShell externo?

ATUALIZAR:

Gostaria de poder adicionar referências de projeto fora do VS pelo seguinte motivo.

Minha empresa tem muitas bibliotecas compartilhadas que dependem umas das outras em alguns casos. Eu estou usando o TFS Nugetter para criar e publicar pacotes nuget do TFS. Eu quero garantir que os desenvolvedores não possam enfileirar uma compilação (pacote), a menos que o projeto possa ser compilado e executado em todas as versões mais recentes. Isso garante que todas as versões mais recentes das bibliotecas funcionem com todas as versões mais recentes de suas dependências. Se a compilação falhar, você precisará atualizar sua referência nuget no VS e corrigir os erros / testes de unidade do compilador.

Eu estive olhando para a fonte NuGet e acho que encontrei uma maneira fácil de reutilizar a fonte NuGet para modificar arquivos proj fora do VS (tipo).

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");

Basicamente, abra uma versão na memória do visual studio, execute os comandos nuget e salve.

Em uma etapa de compilação, depois do GetWorkspace, gostaria de executar isso na memória vs para atualizar todas as referências do nuget para a versão mais recente.

O que você acha? Definitivamente seria lento, mas estaríamos na mesma base de código e teríamos toda a funcionalidade de que precisamos.

questionAnswers(1)

yourAnswerToTheQuestion