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.