У меня есть приложение, которое напрямую ссылается на файл dll: POSLink.dll
.Не удалось загрузить файл или сборку «XXXX.dll» или одну из его зависимостей. Указанный модуль не найден
Чтобы запустить его на моем локальном компьютере, мне необходимо вручную скопировать следующие DLL в выходной каталог: libea32.dll
и ssleay32.dll
.
Когда я запускаю приложение на своей локальной машине, он преуспевает.
При запуске приложения на целевой машине, я получаю следующее сообщение об ошибке:
Unhandled Exception: System.IO.FileNotFoundException: Could not load file or assembly 'POSLink.dll' or one of its dependencies. The specified module could not be found.
at FileNotFoundExceptionExample.Program.Main(String[] args)
Это мой SSCCE
using POSLink;
using System;
namespace FileNotFoundExceptionExample
{
class Program
{
static void Main(string[] args)
{
// this is stuff found in the POSLink namespace
var commSetting = new CommSetting();
commSetting.saveFile();
Console.WriteLine("Success");
}
}
}
Я попытался с помощью Dependency Walker на POSLink.dll, но это WASN Мне очень полезно, потому что есть 381 ошибка, которая появляется, и они появляются, когда я запускаю ее на успешной машине.
Как начать диагностику этой ошибки?
При запуске просмотра журнала Fuision, а затем запустить приложение на целевой машине, я получаю следующий журнал:
* Assembly Binder Log Entry (7/19/2016 @ 2:18:48 PM) *
The operation was successful. Bind result: hr = 0x0. The operation
completed successfully.Assembly manager loaded from:
C:\Windows\Microsoft.NET\Framework\v4.0.30319\clr.dll Running under
executable
C:\Users\Omitted\Desktop\notfoundexceptionexample\debug \FileNotFoundExceptionExample.exe
--- A detailed error log follows.=== Pre-bind state information === LOG: DisplayName = POSLink, Version=1.0.5773.36725, Culture=neutral,
PublicKeyToken=f3876d2e4b7eb819 (Fully-specified) LOG: Appbase =
file:///C:/Users/Omitted/Desktop/notfoundexceptionexample/debug/ LOG:
Initial PrivatePath = NULL LOG: Dynamic Base = NULL LOG: Cache Base =
NULL LOG: AppName = FileNotFoundExceptionExample.exe Calling assembly
: FileNotFoundExceptionExample, Version=1.0.0.0, Culture=neutral,
PublicKeyToken=null.
=== LOG: This bind starts in default load context. LOG: Using application configuration file:
C:\Users\Omitted\Desktop\notfoundexceptionexample\debug\FileNotFoundExceptionExample.exe.Config
LOG: Using host configuration file: LOG: Using machine configuration
file from
C:\Windows\Microsoft.NET\Framework\v4.0.30319\config\machine.config.
LOG: Post-policy reference: POSLink, Version=1.0.5773.36725,
Culture=neutral, PublicKeyToken=f3876d2e4b7eb819 LOG: GAC Lookup was
unsuccessful. LOG: Attempting download of new URL
file:///C:/Users/Omitted/Desktop/notfoundexceptionexample/debug/POSLink.DLL.
LOG: Assembly download was successful. Attempting setup of file:
C:\Users\Omitted\Desktop\notfoundexceptionexample\debug\POSLink.dll
LOG: Entering run-from-source setup phase. LOG: Assembly Name is:
POSLink, Version=1.0.5773.36725, Culture=neutral,
PublicKeyToken=f3876d2e4b7eb819 LOG: Binding succeeds. Returns
assembly from
C:\Users\Omitted\Desktop\notfoundexceptionexample\debug\POSLink.dll.
LOG: Assembly is loaded in default load context.
Смотрите, если просмотр журнала Fusion предоставляет больше информации (убедись, что и запустить его от имени администратора). Он должен показать вам конкретные пути, по которым он попытался найти вашу DLL и ее зависимости. https://msdn.microsoft.com/en-us/library/e74a18c4(v=vs.110).aspx –
где ваш 'using System.IO' также удостоверяется в ссылочном узле проекта, что у вас также есть добавлена необходимая dll для 'POSLink' вручную – MethodMan
Вы нашли все DLL в каталоге exe или ссылались на DLL из GAC? –