Развернутое приложение ClickOnce не может найти внешнюю DLL - PullRequest
1 голос
/ 21 октября 2019

У меня есть это приложение WinForms, которое использует внешний файл DLL (Winppla.dll), поэтому я могу печатать теги на своем принтере Argox. Поскольку я не могу добавить файл dll в качестве ссылки на проект, я использую команду [DllImport("Winppla.dll")] в своем классе. Когда я запускаю проект в Visual Studio, он работает отлично. Затем я опубликовал свое приложение, используя ClickOnce, и при попытке запустить приложение выдает сообщение об ошибке, в котором говорится, что Winppla.dll не может быть найден, даже если я запускаю его на своем компьютере.

Я пытался

  • скопировать файл в папку bin проекта перед публикацией
  • скопировать файл в папку пакетов приложения перед публикацией
  • скопировать файлв папку последней версии в папке «Файлы приложения» (в месте публикации приложения)
  • добавить файл в качестве ресурса в проект
  • добавить папку с файлом в качестве пути ссылкив проекте

, но ни один из них не сработал.

В этом проекте также используется SAP CrystalReports, и он работает просто отлично.

Любые идеи о том, как его сделатьработа

1 Ответ

0 голосов
/ 24 октября 2019

Следуя инструкциям @ Bearcat9425 в разделе комментариев этого вопроса, я наконец решил проблему:

  1. Скопируйте файл в папку проекта и включите его в проект (в обозревателе решений нажмите«Показать все файлы», затем щелкните правой кнопкой мыши файл и выберите «Включить в проект»)
  2. Отметьте файл как один из файлов приложения на вкладке публикации (щелкните правой кнопкой мыши по моему проекту и выберите «Свойства », затем перейдите на вкладку« Публикация »и нажмите« Файлы приложения »и убедитесь, что Winppla.dll помечен как« Включить »)
  3. Скопируйте файл Winppla.dll в общую папку на нашем сервере (япоместил его в ту же папку, где я разместил настройки моего приложения)
  4. В каждой команде DllImport укажите полный путь к файлу общего доступа: [DllImport(@"\\the-path-on-the-server\Winppla.dll")]
  5. Опубликовать!
...