Я создаю пакет NuGet, написанный на C++/CLI. Он служит взаимодействием между C# и родным C++.NuGet interop pacakge руководящие принципы по отладке и выпуску сборки
Произведенная DLL имеет управляемую площадь поверхности и собственную площадь поверхности имбика.
Visual Studio только любит использовать единую ссылочную сборку из пакета NuGet, а не другую ссылочную сборку в конфигурации Debug или Release принимающего проекта.
Я хочу, чтобы эталонная сборка, потребляемая из пакета NuGet, отличалась в соответствии с конфигурацией, поэтому я могу вставлять как DLL Debug, так и Release в nupkg и иметь сборки Release C#, связанные с версией DLL и Debug C# builds bind to DLL Debug.
Это требование для меня, потому что кажется, что макет двоичных объектов std для классов std C++ (например, std :: string) различается между моими сборками Debug и Release.
Сборка компиляции DLL не работает с компиляцией Debug остальной части программы. Я получаю схожую ошибку с компиляторами Debug компиляции DLL и Release программы.
Есть ли что-нибудь, что я могу здесь сделать? Я немного изучил размещение ссылочных элементов в файле NuGet .props или .targets и использовании свойства $ (Конфигурация), но я пока не получил этого, чтобы работать.
Вряд ли единственная проблема, вы получаете точно такие же проблемы с совпадением, когда пользователь библиотеки имеет другую версию VS. Это должно * никогда не быть проблемой в проекте C++/CLI, вы раскрываете только управляемый интерфейс. Как выглядит ваш код на C++, всегда должна быть детальность реализации, поэтому совсем не важно, чтобы вы развертывали версию сборки выпуска. –