C# - System.IO.FileNotFoundException - ссылка .dll отсутствует в папке .exe - PullRequest
0 голосов
/ 08 апреля 2020

Доброе утро. Я совершенно новичок в C# и у меня есть вопрос по поводу ссылки или встраивания DLL в .EXE файл. У меня есть программа, которая использует библиотеку OPCLabsUA для связи с сервером UA. Это очень просто - просто напишите значение на сервер. Everythink работает хорошо, когда у меня есть библиотека в папке с файлом .exe, иначе это не будет работать. Проект будет использоваться на другом компьютере.

Я предполагаю, что недостаточно просто иметь ссылочный путь в проекте - библиотека будет установлена ​​и на другом компьютере, с тем же путем, что и на p c Я пишу программу. Так я должен go через "Assembly, AssemblyResolve ..., .Load" ?? Путь к библиотеке

Первое редактирование: Ошибка - Я перестроил проект, Второе редактирование: в VS он тоже НЕ РАБОТАЕТ - файл не найден - но он находится в PFiles, в точности как Path в VS, говорит, что когда DLL находится на exe, и я запускаю exe, она работает, но когда нет, она не работает даже на моем рабочем столе p c. В этом есть - Система не может загрузить файловые или сборочные opclabs ..... или один из независимых функций. Sys не может найти файл. Я почти уверен, это просто какая-то ошибка новичка. Мои шаги - начать новое решение. NET - консольное приложение, добавить ссылку из progra / oplabs ... BaseLib.dll и EasyOPCUA.dll, затем, используя их в проекте, написать программу, запустить ее в VS - ОК. Затем go Repos .... / debug - вот мой exe. Третье редактирование: я изменил путь к библиотеке в .csproj на абсолютный

<Reference Include="OpcLabs.BaseLib, Version=5.57.125.1, Culture=neutral,  PublicKeyToken=6faddca41dacb409, processorArchitecture=MSIL">
  <SpecificVersion>False</SpecificVersion>
  <HintPath>C:\test\OpcLabs.BaseLib.dll</HintPath>
  <Private>False</Private>
</Reference>

В C: \ test \ - это файл OpcLabs.BaseLib.dll

Второй вопрос - есть ли способ встроить только часть библиотеки, которую мой sln использует не всю DLL? Он довольно большой (20 МБ).

Заранее спасибо за ответ.

...