Создание собственных пакетовCreating native packages

Собственный пакет содержит двоичные файлы машинного кода, а не управляемые сборки, что позволяет использовать его в проектах C++ (или аналогичных).A native package contains native binaries instead of managed assemblies, allowing it to be used within C++ (or similar) projects. (См. Собственные пакеты C++ в разделе "Использование".)(See Native C++ Packages in the Consume section.)

Для использования в проекте C++ пакет должен быть ориентирован на платформу native.To be consumable in a C++ project, a package must target the native framework. Сейчас нет номеров версий, связанных с этой платформой, так как NuGet обрабатывает все проекты C++ одинаково.At present there are not any version numbers associated with this framework as NuGet treats all C++ projects the same.

Примечание

Не забудьте включить native в раздел <tags> вашего .nuspec, чтобы помочь другим разработчикам найти ваш пакет по этому тегу.Be sure to include native in the <tags> section of your .nuspec to help other developers find your package by searching on that tag.

Собственные пакеты NuGet, ориентированные на native, предоставляют файлы в папках \build, \content и \tools; \lib в этом случае не используется (NuGet не может добавлять ссылки непосредственно на проект C++).Native NuGet packages targeting native then provide files in \build, \content, and \tools folders; \lib is not used in this case (NuGet cannot directly add references to a C++ project). Пакет может также содержать целевые объекты и файлы свойств в \build, которые NuGet автоматически импортирует в проекты, использующие этот пакет.A package may also include targets and props files in \build that NuGet will automatically import into projects that consume the package. Эти файлы должны называться так же, как и идентификатор пакета, и иметь расширения .targets и (или) .props.Those files must be named the same as the package ID with the .targets and/or .props extensions. Например, пакет cpprestsdk содержит файл cpprestsdk.targets в своей папке \build.For example, the cpprestsdk package includes a cpprestsdk.targets file in its \build folder.

Папку \build можно использовать для всех пакетов NuGet, а не только для собственных пакетов.The \build folder can be used for all NuGet packages and not just native packages. Папка \build учитывает целевые платформы так же, как и папки \content, \lib и \tools.The \build folder respects target frameworks just like the \content, \lib, and \tools folders. Это означает, что вы можете создать папку \build\net40 и папку \build\net45, и NuGet импортирует необходимые файлы свойств и целевых объектов в проект.This means you can create a \build\net40 folder and a \build\net45 folder and NuGet will import the appropriate props and targets files into the project. (Использовать скрипты PowerShell для импорта целевых объектов MSBuild не требуется.)(Use of PowerShell scripts to import MSBuild targets is not needed.)