Создание пакета nuget с Visual Studio 2013
Я установил NuGet.Tools.2013.vsix на свой VS2013. И мне нравится создавать пакет nuget из консоли менеджера, но когда я пытаюсь получить mensagem:
Термин "nuget" не распознается как имя командлета, функции, файла script или исполняемой программы. Проверьте правильность написания имени или путь
был включен, проверьте правильность пути и повторите попытку.
Я не знаю, что я делаю неправильно.
Возможно ли использовать консоль менеджера для создания пакета, или мне нужно использовать другие материалы.
Ответы
Ответ 1
Убедитесь, что у вас есть nuget.exe
где-то на %PATH%
.
Примечание: Мы используем Jenkins и нуждаемся в EnvInject, чтобы получить переменную% PATH%, доступную во время процесс сборки.
Отредактируйте свой файл .csproj
, чтобы включить новую переменную макроса для номера версии сборки, см. Определение версии сборки во время события Post Build?
<Target Name="PostBuildMacros">
<GetAssemblyIdentity AssemblyFiles="$(TargetPath)">
<Output TaskParameter="Assemblies" ItemName="Targets" />
</GetAssemblyIdentity>
<ItemGroup>
<VersionNumber Include="@(Targets->'%(Version)')"/>
</ItemGroup>
</Target>
<PropertyGroup>
<PostBuildEventDependsOn>
$(PostBuildEventDependsOn);
PostBuildMacros;
</PostBuildEventDependsOn>
<PostBuildEvent>echo HELLO, THE ASSEMBLY VERSION IS: @(VersionNumber)</PostBuildEvent>
</PropertyGroup>
Используйте следующую пост-сборку script для развертывания новых пакетов всякий раз, когда версия сборки изменилась, и требуется новый .nupkg
;
IF "$(ConfigurationName)" == "Release" (
CD /D $(ProjectDir)
IF EXIST $(TargetName)[email protected](VersionNumber).nupkg EXIT
nuget pack $(ProjectPath) -Properties Configuration=$(ConfigurationName)
nuget push $(TargetName)[email protected](VersionNumber).nupkg -s http://mynugetserver
)
Ответ 2
Не уверен, что я полностью понимаю вопрос, но если вы используете консоль диспетчера пакетов в Visual Studio, вам не нужно запускать команды с nuget в этом окне. Обычно я использую консоль диспетчера пакетов для установки/обновления пакетов для моего текущего решения. Например:
Install-Package Nunit
Обычно вы создаете свои пакеты, вызывая nuget из обычной командной строки Windows с чем-то вроде:
nuget pack Library.csproj
Подробнее см. http://docs.nuget.org/docs/creating-packages/creating-and-publishing-a-package.
Ответ 3
Консоль диспетчера пакетов NuGet не предоставляет никаких команд для создания пакетов NuGet из Visual Studio. Вы также не можете использовать команды nuget.exe, поскольку вы не разговариваете с командной строкой NuGet в консоли с поддержкой PowerShell (если вы не обманываете профиль NuGet PowerShell, чтобы знать о nuget.exe, сидящем на диске где-то, создав например, псевдоним).
Однако я создал пакет NuGet для установки, если вы хотите создать файлы NuSpec в Visual Studio (включая IntelliSense). Дополнительная информация в блоге: http://www.xavierdecoster.com/install-nuspec-with-intellisense
Это позволяет более легко создавать файлы манифеста NuGet, однако это все еще не создает фактический пакет. Для этого вам придется отступить от инструмента командной строки nuget.exe, который можно загрузить с https://nuget.org/nuget.exe. Документацию можно найти на сайте NuGet Docs.
Ответ 4
Теперь есть утилита для пакетов Nuget, которая позволит вам создавать пакеты Nuget с помощью небольшого графического интерфейса. Устанавливается с помощью развертывания ClickOnce.
https://npe.codeplex.com/downloads/get/clickOnce/NuGetPackageExplorer.application
Ответ 5
Это старый, но я искал эту информацию. Я объединил информацию в http://docs.nuget.org/create/creating-and-publishing-a-package с информацией, которую я почерпнул из игры с консолью диспетчера пакетов.
Я создал спецификацию и пакет из Консоль диспетчера пакетов, выполнив следующие действия:
cd <projectFolder>
../.nuget/nuget spec
Заменить <projectFolder> с указанием пути к файлу проекта.
Это создаст спецификацию в папке проекта. (файл .nuspec)
Затем отредактируйте этот вновь созданный файл по мере необходимости. Некоторая информация, по-видимому, извлекается из файла AssemblyInfo, поэтому вам может понадобиться также отредактировать ее.
Тогда
../.nuget/nuget pack <projectFileName.csproj>
Заменить < projectFileName.csproj > с вашим именем файла проекта. (Я думаю, это будет .vbproj для проекта vb.)