我想发布关于sdl_mixer的包,它是一个原生包。我按tutorial说。我将.dll
.h
和.lib
个文件放入 包内容
,但最终的包没有用。所以创建c ++ nuget包的正确方法是什么?
另一个问题是我在nuget中发现,大多数原生c ++包都发布在两个包中,例如:
sdl2_ttf.v140
sdl2_ttf.v140.redist
那么这两个文件有什么区别?我怎样才能发布这样的包呢?
---------------------------------------更新------- -----------------------------
当我喜欢教程时说如何发布原生包.i已写成如下autopkg file
nuget{
nuspec {
id = MySdl_mixer;
version :2.0.0.0;
title: sdl mixer;
authors: { Sam Lantinga, Stephane Peter, Ryan Gordon};
owners: {spartawhy117};
licenseUrl: "http://libsdl.org/license.php";
projectUrl: "http://libsdl.org/index.php";
iconUrl:"";
requireLicenseAcceptance:false;
summary:Nothing;
description: @"SDL_mixer is a sample multi-channel audio mixer library....
";
releaseNotes: "Release of C++ ";
copyright:Copyright 2015;
tags: {v140 ,sdl_mixer , native, CoApp };
};
files {
#defines {
Include = include\;
Bin = bin64\;
Lib = lib64\;
}
include:{"${Include}*"};
[x64,v140,debug,desktop]{
lib: ${Lib}SDL2_mixer.lib;
bin: ${Bin}SDL2_mixer.dll;
}
[x64,v140,release,desktop]{
lib: ${Lib}SDL2_mixer.lib;
bin: ${Bin}SDL2_mixer.dll;
}
};
targets {
Defines += HAS_SDLMIXER;
};
}
运行命令后
Write-NuGetPackage。\ sdl_mixer.autopkg
它返回错误:结束的意外输入。那有什么问题?
答案 0 :(得分:2)
您可以使用CoApp PowerShell tools轻松创建Native Nuget包。
创建原生资料套件
如果您有兴趣发布您的 通过NuGet本地库,您可以选择创建NuGet 手动打包。但是,有一种更简单的方法 - CoApp项目 自愿编写面向C ++的工具来创建NuGet包,以及 他们已经发布了他们工具的测试版。这些工具简化了 从中生成MSBuild文件和NuGet包的过程 现有的头文件和库文件 - 你只需要创建一个 配置脚本来描述包的内容然后 运行工具来生成NuGet包。
有关详细信息,请参阅此链接:Support for Native Projects.
答案 1 :(得分:0)
我搜索了几天,直到发现互联网上确实没有任何帮助。我确实设法将其拼凑起来,并且通过反复试验使它运行良好。我在这里记录过:
https://digitalhouseblog.wordpress.com/2019/08/22/how-to-make-a-nuget-package-for-c/
但我还是在这里总结一下:
请注意,永远不要使用Visual Studio IDE中的nuget工具。您必须手动执行很多。有关完整的详细信息和说明,请参见链接。