-1

I have a simple application using a product activation system offered by cryptlex (cryptlex.com).

The program works correctly on my computer, but when I try to run the program on another machine it returns this error:

Picture: Error

I've already made sure that the dll is inside the executable folder and everything looks OK.

When I remove all part of cryptlex the program works perfectly on any machine (x86-x64)

I used depencywalker to check for errors and found these two in the executable that uses cryptlex:

Error

Windows 7 64bits, .NET Version: 4.0

Heretic Monkey
  • 11,687
  • 7
  • 53
  • 122
John Brow
  • 3
  • 2

3 Answers3

0

While the DLL is present, have you checked the bitrate? Most C# projects default to building against Any CPU - if the DLL is specific to a bitrate (ie x86 or x64) then it might be that the program picks the wrong bitrate on end machines (usually x86) but the right one on your machine (x64). This is usually best resolved by building out different x86 and x64 versions; it's messier, but only .NET itself is good at using the Any CPU paradigm.

David
  • 10,458
  • 1
  • 28
  • 40
0

The exception should have detail about what DLL in particular was not found - maybe look closer?

GPSVC and IESHIMS missing should not be a problem; as indicated by the hour glass, they're deferred dependencies anyway.

AKX
  • 152,115
  • 15
  • 115
  • 172
0

You can use Process Monitor to record all file activities of the program. Set a filter for your executable. After reproducing the error, save the log as XML file.

Then run ProcMon Analyzer (note: I'm the author of it). It will analyze the file and give a list of DLLs that were not found.

You could also do that manually, but note that some DLLs may not be found at first, but later be found when looking in the %PATH% environment variable etc. The tool will remove all those entries which have PATH NOT FOUND first but SUCCESS later.

Thomas Weller
  • 55,411
  • 20
  • 125
  • 222