Я сделал это с тоннами сторонних библиотек и до тех пор, пока библиотеки сторонних библиотек находятся в одном каталоге с вашими библиотеками C #, проблем быть не должно.
- Копированиеони в том же каталоге, что и ваш код VB6, ничего не сделают, эффективный каталог кода VB6 при запуске в отладчике VB6 - это% ProgramFiles% \ Microsoft Visual Studio \ VB98, поэтому выполняющийся код не будет видеть этого.
- Каталог system32 не имеет ничего общего с dotNet dll (единственные DLL, на которые они будут влиять, это PInvoke'd dll, и вы говорите, что добавляете ссылку, чтобы это не так).
Добавление сторонней библиотеки в GAC должно исправить ситуацию, однако это не обязательно возможно / просто из-за необходимости подписывать DLL.Так что просто убедитесь, что библиотеки, на которые вы ссылаетесь, находятся в каталоге ВАШЕЙ библиотеки и что VB6 фактически ссылается на эту версию вашей библиотеки (Debug / Release независимо от того, что было скомпилировано последним).Возможно, вы захотите передать RegAsm библиотеку, чтобы убедиться, что правильная библиотека зарегистрирована в Com Comistered.
Итак, для подведения итогов предположим, что ваш исходный код выглядит следующим образом:
c:\projects\vb6project
c:\projects\c#project
И ваш проект настроенДля отладки сторонние библиотеки должны находиться в:
c:\projects\c#project\bin\Debug
Если вы действительно хотите распространять приложение, убедитесь, что ВСЕ библиотеки находятся в том же каталоге, что и ваш VB6 exe.