У меня есть библиотека под названием foo
, написанная на C ++ / CX. Я выбрал компонент среды выполнения Windows, потому что хочу, чтобы он проецировался на C #, C ++ и JavaScript. Кроме того, я хочу иметь возможность распространять библиотеку, и я не хочу требовать / разрешать потребителю загружать мой проект вместе с исходными файлами в том же решении, что и их проект.
Инструкции в MSDN только демонстрируют, как включить проект компонента среды выполнения Windows в решение с использованием проекта C #. Я знаю, что есть способ распространять только двоичный файл, но не знаю, как это сделать.
Этот вопрос задавали тысячу раз, но ответ всегда - два проекта в одном решении, неполный или обходной путь.
Я использую Visual Studio 2013.4 в Windows 8.1.
2 ответа
Я исследовал и нашел ответ ... Это плохо документировано, это не интуитивно понятно, но стоит проблем, когда вы видите, насколько хорошо работает компонент среды выполнения Windows.
Компиляция библиотеки C ++ / CX:
Убедитесь, что вы скомпилировали библиотеку для всех перестановок Debug
и Release
в Win32
, ARM
, x86
и x64
.
Инструкции по использованию на C #:
Щелкните правой кнопкой мыши ссылку в обозревателе решений и добавьте ссылку на пакет среды выполнения Microsoft Visual C ++ v12.0. Затем добавьте ссылку на созданный вами двоичный файл с соответствующей конфигурацией для вашего проекта (например, Debug
/ ARM
). Этот шаг сложен, потому что фильтр файлов запрашивает у вас .dll
, но вам нужно установить фильтр на *.*
и выбрать файл .winmd
. Затем вы выгружаете проект и находите тег <Reference>
для только что добавленной библиотеки. <Reference>
будет иметь тег <HintPath>
под ним, а в разделе <Reference>
вам также потребуется добавить <IsWinMDFile>true</IsWinMDFile>
и пару тегов <Implementation>
, загруженную с именем .dll
, который находился в той же папке, что и файл .winmd
.
Для получения более подробных инструкций и информации я настоятельно рекомендую посетить Блог Майка Тэлти
Один из способов сделать это - создать пакет VSIX вашего компонента. См. Пошаговое руководство: создание SDK с использованием C ++, в котором показано, как именно это сделать. с компонентом WinRT, используемым проектом C #.
Похожие вопросы
Новые вопросы
c#
C # (произносится как «резкий») - это высокоуровневый, статически типизированный язык программирования с несколькими парадигмами, разработанный Microsoft. Код C # обычно нацелен на семейство инструментов и сред выполнения Microsoft .NET, включая, среди прочего, .NET Framework, .NET Core и Xamarin. Используйте этот тег для вопросов о коде, написанном на C # или в формальной спецификации C #.