Как я могу собрать пакет nuget из project.json?

Я ищу самый простой способ создания пакета nuget из моих источников. У меня есть Visual Studio 2015 Update 3, и в моем решении есть проект библиотеки классов .NET Core (на основе project.json). Я пытаюсь создать пакет из этого проекта. В настоящее время для этого я создал файл .nuspec и отредактировал его вручную, т.е. скопировал все зависимости, перечисленные в моем файле project.json.

Есть ли лучший способ, кроме создания и редактирования файла .nuspec вручную? Если я внесу изменения в project.json, я также должен отразить их в файле .nuspec, что звучит странно.

Кстати, этот guide у меня не работает, потому что нет флажка "Производить выходные данные при сборке"

Хотя Microsoft ASP.NET и веб-инструменты установлены

введите здесь описание изображения

Я что-то упускаю?


person neleus    schedule 15.08.2016    source источник


Ответы (1)


Это шаги, которые мы выполнили в нашем проекте для создания пакета NuGet:

1. Загрузите Nuget.exe и поместите его в папку, где находится файл .csproj.

2. Откройте cmd и введите nuget spec. Будет создан файл с расширением .nuspec.

3.Откройте созданный файл и добавьте тег:

<files> <file src="..\..\SomeRoot\**\*.*" target="libs\net461" /> </files>

4.Выполните nuget pack A.csproj –IncludeReferencedProjects в cmd. Создается файл с расширением .nupkg.

5. Перейти в визуальную студию. В настройках диспетчера пакетов NuGet добавьте «Источники пакетов» и укажите путь, по которому существуют ваши файлы .nupkg и .nuspec.

6. Закройте диспетчер пакетов Nuget и снова откройте его. Теперь вы можете найти его в созданном источнике пакета на вкладке просмотра.

Примечание. Ваш файл .nuspec должен выглядеть так:

<?xml version="1.0"?>
<package  xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <metadata  xmlns="http://schemas.microsoft.com/packaging/2010/07/nuspec.xsd">
    <id>ABC.XYZ.FL</id>
    <version>1.0.0.0</version>
    <title>ABC.XYZ.FL</title>
    <authors>ABC</authors>
    <owners>ABC</owners>
    <requireLicenseAcceptance>false</requireLicenseAcceptance>
    <description>Framework that will be used to create objects in XYZ world</description>
    <releaseNotes>Summary of changes made in this release of the package.</releaseNotes>
    <copyright>2016</copyright>
    <tags>ABC.XYZ.FL</tags>
  </metadata>
  <files>
    <file src="bin\Debug\*.dll" target="lib\net461" />
  </files>
</package>

Следующие ссылки содержат дополнительные сведения о создании пакета nuget и его локальном размещении:

https://docs.nuget.org/create/creating-and-publishing-a-package

https://docs.nuget.org/create/hosting-your-own-nuget-feeds

https://docs.nuget.org/consume/nuget-config-file

Посмотрите, поможет ли это.


ИЗМЕНИТЬ:

Вот пример команды dotnet pack для справки:

"scripts": {
  "postcompile": [
    "dotnet pack --no-build --configuration %compile:Configuration%"
  ]
}
person Sanket    schedule 15.08.2016
comment
Здесь нет. csproj-файл. Вместо этого используется project.json, где перечислены все зависимости. Моя проблема в том, что я ищу способ избежать ручного копирования зависимостей. nuspec при их изменении. - person neleus; 15.08.2016
comment
О, я был прав, мне этого не хватало! Спасибо. Тогда вы можете исправить свой ответ, чтобы я мог его принять. - person neleus; 15.08.2016
comment
проверьте мой РЕДАКТИРОВАТЬ ответ - person Sanket; 15.08.2016