为 Boost 创建 Nuget 包

Create Nuget package for Boost

我想为我的 boost 库创建一个 nuget 包。目前 boost 文件夹包含 boost、lib、pathces 和 readme.txt 文件等子文件夹。

我应该如何从它创建一个 nuget 包,我应该将所有这些子文件夹都放入内容文件夹吗?

有什么指点吗?

要为本机 C++ 库创建 NuGet 包,您应该将这些文件添加到 NuGet 包中:

  • 'build/native/{LIBRARY_NAME}.targets'
  • 'lib/native/include/{LIBRARY_HEADER_FILES}'
  • 'lib/native/{LIBRARY_LIB/DLL_FILES}'

{LIBRARY_NAME}.targets 应该指定头文件和 lib 文件的所需路径。例如,

<?xml version="1.0" encoding="utf-8"?>
<Project ToolVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <ItemDefinitionGroup>
    <ClCompile>
      <PreprocessorDefinitions>;%(PreprocessorDefinitions)</PreprocessorDefinitions>
      <AdditionalIncludeDirectories>$(MSBuildThisFileDirectory)..\..\lib\native\include\;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
    </ClCompile>
  </ItemDefinitionGroup>
  <ItemDefinitionGroup Condition="'$(Platform)'=='Win32'">
    <Link>
      <AdditionalLibraryDirectories>$(MSBuildThisFileDirectory)..\..\lib\native\address-model-32\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
    </Link>
  </ItemDefinitionGroup>
  <ItemDefinitionGroup Condition="'$(Platform)'=='x64'">
    <Link>
      <AdditionalLibraryDirectories>$(MSBuildThisFileDirectory)..\..\lib\native\address-model-64\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
    </Link>
  </ItemDefinitionGroup>
  <ItemGroup />
</Project>

同时,为使用该项目的所有官方 Boost 库生成并发布了 Boost NuGet 包https://github.com/sergey-shandar/getboost