Создание пакета 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.)