Проблемы с добавлением UserControl, ссылающегося на оболочку C++/CLI к неуправляемой dll в форме.

StackOverflow https://stackoverflow.com/questions/817139

Вопрос

Мой UserControl ссылается на оболочку C++/CLI на неуправляемую dll C++.Когда я пытаюсь добавить UserControl в форму, я получаю ошибку Visual Studio, в которой говорится: «Не удалось создать компонент userControl», в качестве причины указывается исключение System.IO.FileNotFoundException.

Насколько мне удалось определить, проблема связана с тем, что Visual Studio не копирует неуправляемые зависимости сборки оболочки C++/CLI.Если я помещу неуправляемые зависимости в системный PATH, все будет работать нормально.

Есть ли лучший способ сделать это?

Это было полезно?

Решение

Проще всего было бы включить в проект фактический .dll, пометить его действие сборки как «Содержимое», а затем установить для параметра «Копировать в выходной каталог» значение «Всегда».Это должно поместить .dll в ваш выходной каталог, чтобы ваше приложение могло работать, и простое включение файла в проект должно поместить его в каталог проекта, чтобы дизайнер мог его найти.

Убедитесь, что ваш проект установки также включает в себя выходные данные проекта для файлов содержимого из этого проекта.

Редактировать

Если это не работает, вы также можете отредактировать пути ссылок самого проекта (в свойствах проекта), хотя я не уверен, что это повлияет на дизайнера.Если это не так, то ваш единственный реальный вариант — разместить .dll в одном из каталогов системного пути.

Другие советы

Старый поток, но отправляю свое решение, так как я только что столкнулся с проблемой и нашел этот вопрос в процессе.

По сути, я просто сделал собственные библиотеки DLL с задержкой загрузки в свою библиотеку C ++ / CLI. Поскольку часть оболочки C ++ / CLI содержит спецификации интерфейса, используемые Visual Studio и платформой, встроенная DLL никогда не требуется и не загружается. Я ответил на это немного более подробно в этом вопросе: https://stackoverflow.com/a/15481687/34440

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top