How to add shared C# NuGet dependencies to a C++/C

2020-03-01 04:55发布

Context: A Visual Studio solution with 2 assemblies, Cs and Cpp.

  • Cs is a C# / .net45 dll
  • Cpp is a C++/Cli dll, a C++ dll compiled with /clr.

I have some dependencies that are pure C# projects from nuget.org. I use the original packages provided by the authors. Adding them to the Cs project works fine, but not to Cpp.

How can I add the C# package to the C++ project?

Since it's C++/Cli, I can easily use .net objects, and I use e.g. in the C++ library stuff from the C# library. But somehow nuget only allows me to select C# projects to add a C# dependency to, not C++ /clr ones.

3条回答
淡お忘
2楼-- · 2020-03-01 05:29

In your C++/CLI project, just add a reference (Menu->References->Add New Reference->Browse->Browse...) to the nlog.dll that nuget downloads to your [solutionfolder]/packages/nlog... folder. That seems to work for me.

查看更多
走好不送
3楼-- · 2020-03-01 05:37

The way I've done it, is to make a "nugetmaster", which references all the nugets the other two projects will use. Build that one first, and reference the nuget assemblies manually within each project. Added bonus is to have more control on versions, only once place to update all other projects. And this scales well.

Another approach is similar to the one above - create a shared C# assembly used by them both, which also implements all the code using the nuget assemblies. And only expose wrappers.

查看更多
疯言疯语
4楼-- · 2020-03-01 05:44

Please refer to NuGet documentation especially the "-IncludeReferencedProjects" parameter.

"From a project" section; http://docs.nuget.org/docs/creating-packages/creating-and-publishing-a-package

Regards...

查看更多
登录 后发表回答