dotnet-apiport icon indicating copy to clipboard operation
dotnet-apiport copied to clipboard

Detect all competability issues with a specific DLL file

Open Lidanha opened this issue 6 years ago • 4 comments

Hey,

I'm trying to understand what is the gap between an engine I have that compiled against .Net Framework (lets call it MainEngine.dll) that points to other libraries (more .Net Framework) to .Net Standard 2.0.

When running the following command: apiport analyze -f "MainEngine.dll" -r EXCEL

It will analyze MainEngine and tell me its gaps. But it won't tell me the gaps of its dependencies. Even more, it will not detect its dependencies that are lying on the same directory. So I went through all the missing assemblies and concatenated the command like this (added all missing dll files as files explicitly): apiport analyze -f "MainEngine.dll" -f "SubEngine1.dll" -f "SubEngine2.dll" -f "SubEngine3.dll" .......... -r EXCEL

But then, more missing assemblies appears because SubEngine1.dll for example is dependent on something else, maybe another chain of DLLs.

Is there any way I can have a clear view of all the gaps I have with a specific DLL file recursively (under the assumption that all DLL files are available on the same directory)?

Thank you, Lidan

Lidanha avatar Jul 26 '18 07:07 Lidanha

You can pass a directory to the -f switch: apiport analyze -f . -r EXCEL for example

jeremymeng avatar Jul 26 '18 17:07 jeremymeng

Thanks,

In my case I have an existing application and I don't even know the dependencies of each DLL file. Some DLLs in that folder are not even related to the one I need to convert to .Net Standard. For example:

WPFMain.dll MainEngine.dll SubEngine1.dll SubEngine2.dll WPFComponents.dll SubEngine3.dll

I would like to run the apiport on MainEngine.dll and have results for all its dependent components. in this case it references SubEngine1, SubEngine2, SubEngine3. This would give me a clear results of what needs to be done in order to run MainEngine.dll on .Net other platforms.

(Maybe this is a feature request...) Thanks, Lidan

Lidanha avatar Jul 27 '18 05:07 Lidanha

Yeah, this would be a feature request as we don't do that kind of thing now. You can always direct it at a single file or move to their own directories

twsouthwick avatar Sep 19 '18 21:09 twsouthwick

FYI This is not high on our priority list, but feel free to submit a proposal for it.

twsouthwick avatar Dec 18 '18 16:12 twsouthwick

Closing as API Port was deprecated in favor of binary analysis in .NET Upgrade Assistant.

terrajobst avatar Nov 15 '22 23:11 terrajobst