Выполнять сценарии powershell через командную строку nuget

Я сделал собственный пакет, который включает в себя собственные библиотеки DLL. Пакет похож на SqlServerCompact.4.0.8852.1.nupkg.

Когда я устанавливаю пакет через GUI с помощью "Manage Nuget Packages ...", все в порядке, и нативная DLL копируется в папку Debug/Release. Копирование нативных Dll выполняется скриптом, похожим на тот, что в SqlSerCompact.

И у меня есть следующее .bat файл для автоматизации процедуры упаковки MyProject:

..\..\tools\nuget\bin\NuGet.exe install MyProject\packages.config -o packages\
..\..\tools\nuget\bin\NuGet.exe install MyProjectTest\packages.config -o packages\
..\..\tools\nuget\bin\nuget update MyProject.sln
msbuild /m /p:Configuration=Release /p:Platform="x64" MyProject.sln
..\..\tools\nuget\bin\nuget pack MyProject.nuspec

Приведенный выше скрипт отлично работает MyProject.nupkg (Для компиляции нужны только.Net DLL). тем не мение nuget install не выполняет сценарий копирования в пакетах зависимостей - поэтому компиляция MyProjectTest это нормально, но при выполнении его EXE нет собственной библиотеки DLL в его папке Debug/Release.

У меня вопрос, почему сценарий powershell не выполняется при установке пакетов из командной строки? И как с этим бороться? Спасибо!

1 ответ

Решение

Он не поддерживается NuGet.exe. Об этом обсуждается в codeplex, и есть некоторые проблемы, которые были закрыты, которые были подняты в их системе отслеживания проблем. Есть также запись в блоге Дэвида Эббо о проблемах с поддержкой этой функции.

Общая проблема заключается в том, что в сценарии PowerShell вы можете использовать объектную модель Visual Studio, чтобы иметь возможность предоставлять ее извне Visual Studio и поддерживать все сценарии нетривиально.

Я посмотрел на поддержку запуска сценариев PowerShell извне Visual Studio, используя SharpDevelop в качестве эксперимента, чтобы увидеть, что было возможно. Это довольно тяжеловесное решение, поскольку для его работы требуется SharpDevelop, а не только NuGet.exe.

Другие вопросы по тегам