Проблемы при добавлении UserControl со ссылкой на оболочку C ++ / CLI в неуправляемую dll в форму - PullRequest
2 голосов
/ 03 мая 2009

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

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

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

Ответы [ 2 ]

1 голос
/ 03 мая 2009

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

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

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

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

0 голосов
/ 18 марта 2013

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

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

...