This one is quite common error, but things might have changed in .net core since this wiki was written:
https://github.com/pythonnet/pythonnet/wiki/Troubleshooting-on-Windows,-Linux,-and-OSX On Mon, Jul 11, 2022 at 12:11 PM Steven Manross <ste...@manross.net> wrote: > Thanks for that: Dependency walker was what I needed to see why it was > having issues. > > > > This DLL depends on the .NET Core and Visual C++ Redist (both are > installed but it still cant see particular files like: > API-MS-WIN-CORE-PROCESSTHREADS-L1-1-3.DLL). Searching for this and other > files it is missing, revealed that they are not present on the Server. > From what I’ve googled, there could be an issue with the dll linking to > files that were moved to other libraries in current OSes. > > > > Thank you for your help. > > > > Steven > > *From:* Mark Visser <ma...@unity3d.com> > *Sent:* Monday, July 11, 2022 8:02 AM > *To:* A list for users and developers of Python.NET <pythonnet@python.org> > *Subject:* [Python.NET] Re: BadImageFormatException or > FileNotFoundException- pythonnet and AlphaVSS > > > > +1 - in the past I've used https://www.dependencywalker.com/ to figure > out the problem. On mac you can use otool -L, and on linux you can use ldd. > > > > On Jul 11, 2022, at 9:38 AM, Alex Earl <slide.o....@gmail.com> wrote: > > > > Sometimes the file not found error occurs because a dependency of the dll > can not be found. > > > > On Sun, Jul 10, 2022, 20:06 Steven Manross <ste...@manross.net> wrote: > > Howdy all, > > > > I am somewhat new to pythonnet and .NET programming, and just joined the > mailing list. You have my apologies if I am missing something simple. I > am aware that BadImageFormatException suggests that I’m trying to open an > x64 DLL on a 32-bit OS or python installation (or vice versa), but neither > seem to be the case (that I can tell). Depending on exactly how I call the > code, I get a File Not Found or Bad Image Exception. > > > > The File Not Found is interesting since the files live in the same > directory as a working DLL (AlphaVSS.Common works - built to run on any > architecture, AlphaVSS.x64 doesn’t). > > > > Specifics: > > * Python 3.9.13 (tags/v3.9.13:6de2ca5, May 17 2022, 16:36:42) [MSC v.1929 > 64 bit (AMD64)] on win32 > > * uninstalled Python 3.10 temporarily so I cant get you that detail (sorry) > > * And the Windows version clearly states it’s Windows Server 2016 x64 > > > > I’m doing my testing from ipython. > > > > The code below was tested with Python 3.9 x64 (pythonnet 2.5.2 via wheel > file) and Python 3.10 x64 (installed pythonnet 3.0.0-dev1 from git master a > few days ago) on Windows Server 2016 x64 Evaluation patched for current > .NET Frameworks 2022-06 and both produce an error on the following code. > > > > AlphaVSS DLLs were generated via powershell/nuget, and I just copied the > DLLs from my powershellmodules dir to the “clr_dir” below for testing > (documentation suggests you copy the files to the same directory for use). > This DLL was created for .NET Framework 4.5 and I’ve installed Framework > 4.8 and this Cumulative update: > > > > - 2022-06 Cumulative Update for .NET Framework 4.8 for Windows Server > 2016 for x64 (KB5014630) > > > > This code is eventually intended to manipulate the Volume Shadow Copy > Service on Windows. I am aware that there is limited functionality for > ShadowCopies from DISKSHADOW and WMI, but wanted to get more functionality > from this VSS .NET Library (specifically Shadow Copy Sets), and pythonnet > seemed like a great way to implement this code in my favorite scripting > language. > > > > Here is the documentation for the DLLs (version 2.0.0) if anyone wants > that: > > https://alphavss.alphaleonis.com/api/Alphaleonis.Win32.Vss.html > > > > git source: > > https://github.com/alphaleonis/AlphaVSS > > > > I double checked permissions on the DLLs and I have full control as the > administrator. UAC is completely turned off on this machine (if it > matters). > > > > Any suggestions would be appreciated. This is a test system, so I can do > just about anything to it including rebuilding it from scratch as it was > built specifically for testing this. This is a VM on Hyper-V 2016 (I doubt > that matters). > > > > Thank you for your time! > > > > Steven > > # ipython dir output > In [16]: ! dir "c:\users\administrator\desktop\alphavss" > > Volume in drive C has no label. > > Volume Serial Number is 8C70-F8A3 > > > > Directory of c:\users\administrator\desktop\alphavss > > > > 07/09/2022 03:10 AM <DIR> . > > 07/09/2022 03:10 AM <DIR> .. > > 12/03/2019 08:37 PM 69,632 AlphaVSS.Common.dll > > 12/03/2019 08:37 PM 21,408 AlphaVSS.Common.pdb > > 12/03/2019 08:37 PM 618,522 AlphaVSS.Common.xml > > 12/03/2019 08:37 PM 325,120 AlphaVSS.x64.dll > > 12/03/2019 08:37 PM 271,872 AlphaVSS.x86.dll > > 12/03/2019 08:29 PM 342,392 Ijwhost.dll > > 07/09/2022 03:09 AM <DIR> runtimes > > 07/09/2022 03:10 AM <DIR> win-x64 > > 07/09/2022 03:10 AM <DIR> win-x86 > > > > # code > > import sys > > import clr > > import System > > # from System import Reflection > > > > clr_dir = "C:\\Users\\Administrator\\Desktop\\AlphaVSS" > > if clr_dir not in sys.path: > > sys.path.append(clr_dir) > > > > # common_vss = > Reflection.Assembly.LoadFile(f'{clr_dir}\\AlphaVSS.Common.dll') > > clr.AddReference("AlphaVSS.Common") #pylint:disable=I1101 > > > > import Alphaleonis.Win32.Vss as alphavss > > > > > > # clr.AddReference("AlphaVSS.x64") #pylint:disable=I1101 > > vss = alphavss.VssFactoryProvider.Default > > # x64_vss = Reflection.Assembly.LoadFile(f'{clr_dir}\\AlphaVSS.x64.dll') > > # BadImageFormatException: An attempt was made to load a program with an > incorrect format. (Exception from HRESULT: 0x8007000B) > > > > try: > > factory = vss.GetVssFactory() > > except System.BadImageFormatException as e: > > print(f'Bad Image Format: {e}') > > except OSError as e: > > # FileNotFoundException: Could not load file or assembly > 'AlphaVSS.x64, Version=2.0.0.0, Culture=neutral, > PublicKeyToken=959d3993561034e3' or one of its dependencies. The system > cannot find the file specified. > > print(f'File Not Found: {e}') > > _______________________________________________ > PythonNet mailing list -- pythonnet@python.org > To unsubscribe send an email to pythonnet-le...@python.org > https://mail.python.org/mailman3/lists/pythonnet.python.org/ > Member address: slide.o....@gmail.com > > _______________________________________________ > PythonNet mailing list -- pythonnet@python.org > To unsubscribe send an email to pythonnet-le...@python.org > https://mail.python.org/mailman3/lists/pythonnet.python.org/ > Member address: ma...@unity3d.com > > > _______________________________________________ > PythonNet mailing list -- pythonnet@python.org > To unsubscribe send an email to pythonnet-le...@python.org > https://mail.python.org/mailman3/lists/pythonnet.python.org/ > Member address: denis.akhiya...@gmail.com >
_______________________________________________ PythonNet mailing list -- pythonnet@python.org To unsubscribe send an email to pythonnet-le...@python.org https://mail.python.org/mailman3/lists/pythonnet.python.org/ Member address: arch...@mail-archive.com