PInvoke DLL, которая использует другие DLL - вопрос ClickOnce - PullRequest
2 голосов
/ 15 сентября 2010

Я создаю .NET DLL, которая действует как оболочка, используя PInvoke для неуправляемой DLL.Мой вопрос: если я запускаю неуправляемую библиотеку DLL, которая ссылается на другие библиотеки DLL при использовании щелчка один раз, какие библиотеки мне нужно включить в развертывание проекта, использующего эту библиотеку DLL .NET Wrapper?

Используемые файлы:

  • Проект, который использует развертывание по клику один раз
  • .NET DLL, которая оборачивает неуправляемую DLL (назовите ее X.DLL)
  • X.DLL, которая является неуправляемой DLL
  • Y.DLL, которая является неуправляемой DLL-библиотекой, вызываемой X.DLL

Нужно ли включать все эти файлы в одноразовое развертывание?Просто .NET DLL?Объяснения того, почему было бы также полезно:)

1 Ответ

3 голосов
/ 15 сентября 2010

Да, вы должны указать все из них.Или, по крайней мере, убедитесь, что они все так или иначе доступны на цели.

Хотя .NET dll, вероятно, будет выбран автоматически (как часть проекта).Но вы должны проверить, правильно ли обнаружены неуправляемые библиотеки DLL, и в противном случае добавить их.

Если речь идет о / Sytem32 / DLL или файлах, которые передаются другим образом, у вас может быть проблема.Вы не можете установить общие библиотеки DLL с ClickOnce, поэтому вам придется копировать в локальную.И тогда надеюсь, что это сработает.

...