本机Nuget软件包安装在VS中,但未为C ++(本机)项目添加参考

时间:2019-08-28 07:50:42

标签: c++ nuget native nuget-package

我刚刚创建了一个本机的Nuget包(C / C ++),并尝试在Visual Studio的另一个本机包中使用它。从Nuget软件包管理器中,我可以看到已安装nuget,并且可以在package.config中看到它。但是在项目引用下仍未引用。如何添加对本机Nuget的引用?

我已经尝试按照nuget版本更新package.config,但这并没有帮助。

2 个答案:

答案 0 :(得分:1)

这是很不幸的,但是原生的Nugets已经成为过去。 Microsoft正在开发的VSPkg仍在开发中,可能会 该应用程序于2020年左右发布。CoApp提供了一种默认方法来创建本机C,C ++ Nugets,但随之而来的是很多问题。 CoApp项目已结束 在测试阶段,因此您获得的支持很少,而且只能从聊天论坛或IRC中获得。

尽管CoApp确实是创建本机库/ Nuget的好工具,但默认情况下,Nuget Package Manager会为本机nuget带来很多问题。首先 而最重要的是参考。 默认情况下,Nuget使用程序包管理器来解决此问题,但是在本机项目中使用本机nuget的情况下,您将无法选择。 ProjectReferences仍然是 C ++项目的未来,您仍然必须使用package.config声明版本和引用。

程序包管理器/ CoApp使用“ / Native”标签创建本机程序包,也没有任何版本控制。因此,没有任何版本控制,就无法引用本机项目中的nuget。 使用本机Nuget的唯一方法是在提供上述功能的.Net Core应用程序,XamarinC#多目标项目中。遗憾的是,VS中的C / C ++项目无法使用C / C ++ nuget。

答案 1 :(得分:0)

无法通过Visual Studio将本机(C / C ++)构建的nuget直接添加到本机(C / C ++)项目。好吧 至少不是默认情况下。 合并此错误的唯一方法是在运行时加载Dll(而不是nuget)。这似乎是唯一的方法。 嗯,无论如何也没有必要向C ++项目中添加C ++ nuget。最好将引用添加到DLL。 以防万一,您可以选择其他方法在运行时加载DLL。 这里完成了一个非常类似的事情: https://github.com/aspnet/KestrelHttpServer/blob/e4b9bd265c75704529409638fd9cdfac504a93ef/src/Microsoft.AspNet.Server.Kestrel/KestrelEngine.cs#L26