2013-09-13 2 views
15

Контекст: решение Visual Studio с двумя сборками, Cs и Cpp.Как добавить общие зависимости C# NuGet к проекту C++/Cli?

  • Cs является C#/.net45 DLL
  • Срр является DLL C++/CLI, Библиотека DLL C++, компилируется с/CLR.

У меня есть некоторые зависимости, которые являются чистыми проектами C# с nuget.org. Я использую оригинальные пакеты, предоставленные авторами. Добавление их в проект Cs прекрасно работает, но не с Cpp.

Как я могу добавить пакет C# в проект C++?

Поскольку это C++/Cli, я могу легко использовать объекты .net, и я использую, например. в библиотеке C++ из библиотеки C#. Но как-то nuget позволяет мне выбирать проекты C#, чтобы добавить зависимость C#, а не C++/clr.

+2

Эта проблема с NuGet связана с: https://nuget.codeplex.com/workitem/3665 –

+1

Любой прогресс? Это все еще кажется проблемой через 4 года в VS2017. – Malachi

ответ

-1

Обратите внимание на документацию NuGet, особенно на параметр «-IncludeReferencedProjects».

раздел «Из проекта»; http://docs.nuget.org/docs/creating-packages/creating-and-publishing-a-package

С уважением ...

+2

Это будет работать, если мы будем полностью находиться на земле C#; этот вопрос сосредоточен на C++/Cli и C# interop. – Wilbert

+0

Если у вас есть проект, он должен работать. Это решение не зависит от C#, важно то, что ссылки на ваш проект, если вы правильно использовали ссылки на проекты, должны работать ... – efaruk

+1

Основная проблема заключается в том, что C++ и C++/Cli проекты по умолчанию для собственных пакетов NuGet, а проекты C# по умолчанию - для пакетов C# nuget. NuGet в настоящее время не поддерживает добавление пакета C# в собственный проект. – Wilbert

0

В вашем C++/CLI проекта, просто добавить ссылку (Меню-> References-> Добавить Справочно> Browse-> Обзор ...) в nlog.dll, что nuget загружается в папку [solutionfolder]/packages/nlog .... Это похоже на работу.

+2

Это кодирует путь (который включает точную версию) и нуждается в обновлении вручную позже. – Wilbert

Смежные вопросы