Как я могу ссылаться на dll без строгой типизации в проекте библиотеки классов, который зарегистрирован для взаимодействия с com?

Я создал тестовый проект из .net в качестве библиотеки классов, я проверил регистр для опции взаимодействия с com, и он работает из visual foxpro.

затем я попытался поместить ссылку на DLL-файл .net, который мне нужен для этого проекта, он не является строго типизированным, чтобы помещать его непосредственно в GAC). У меня есть класс comvisible с методом в тестовом проекте, который вызывает метод библиотеки DLL, на которую ссылается .NET, и когда я вызываю этот метод из visualfoxpro, я получаю сообщение об ошибке

«Не удалось загрузить файл, сборку или одну из ее зависимостей ...»

Я тестировал, чтобы указанная dll была в папке отладки (которую я компилирую, а затем тестирую) и из папки клиентского приложения, которую я тестирую, чтобы использовать com dll в foxpro, и ни в одном из них com dll не нашла указанную dll.

У меня есть еще одна папка, в которую можно положить dll, которую нужно найти? какой-то код, который мне нужен?


person FabianSilva    schedule 26.08.2018    source источник
comment
Что остальное? Часть «...» могла бы сказать.   -  person blins    schedule 26.08.2018
comment
ошибка в том, что файл указанной dll не найден ... это странно, я снова попытался поместить все сообщение об ошибке, и теперь он работает ... Я попытался переименовать dll на двух путях, которые я поместил и все еще работает ... не знаю, как, и мне придется протестировать его на другом компьютере, чтобы убедиться, что он работает, помещая dll в ту же папку. Благодарность   -  person FabianSilva    schedule 26.08.2018


Ответы (1)


Когда я перекомпилировал проект, он начал работать, кажется, что по какой-то причине автоматическая публикация в реестр COM не происходит автоматически.

если у кого-то есть эта проблема,

тест на использование regasm nameOfLibrary.dll /tlb:nameOfLibrary.tlb /codebase в DLL-библиотеке .net

он загружает DLL в реестр COM, не помещая ее в GAC (некоторые предупреждения о версиях, ищите это) ...

также другой вариант - сделать «активацию без регистрации», которая избавит от необходимости регистрировать COM с помощью regasm, чтобы использовать dll позже.

person FabianSilva    schedule 24.09.2018