我刚刚创建了一个本机的Nuget包(C / C ++),并尝试在Visual Studio的另一个本机包中使用它。从Nuget软件包管理器中,我可以看到已安装nuget,并且可以在package.config中看到它。但是在项目引用下仍未引用。如何添加对本机Nuget的引用?
我已经尝试按照nuget版本更新package.config,但这并没有帮助。
答案 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
应用程序,Xamarin
或C#
多目标项目中。遗憾的是,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