3F / DllExport

.NET DllExport with .NET Core support (aka 3F/DllExport aka DllExport.bat)
MIT License
968 stars 133 forks source link

Build Issues - Notifications and Interaction with user #9

Closed eschatzy closed 8 years ago

eschatzy commented 8 years ago

I was able to find a work around for these problems, but it is something that should probably be fixed.

I built my C# project with all the DllExport attributes over each method. There were no build errors or warnings. I tried to access the Dll from the calling project, but no functions were found. After a bit of digging, I found a post that suggested I set the build output to verbose/detailed. I was able to find two problems when building.

Problem 1:

Solution 1:

Problem 2:

Solution 2:

It would be nice if there were some warning or error either during installation or at the time of building a project.

3F commented 8 years ago

For problem 1:

This is needed to create library.exp & library.lib - that is commonly used by LINK Output in C++ projects

and as you guessed, the DllExport also reproduces this steps for your new library via Microsoft Library Manager (LIB.exe)

i.e. the library that already has been modified by ILAsm + .export directive - look here or here details, how it works.

However, it's optional step. The final library.dll already should have your specified records in export table, and it also will work even via Conari engine.

btw, just noticed that's a good additional solution to solve problem with .net domains. I mean you should know about the "inconvenience" when you need destroy full domain to simply unload a single dll/.net assembly... need to think

But I also see that Robert also checks existence of this tool:

libtool

so it already optional step...

What you need exactly for this ? :) the any message like for problem 0x80070005 that .exp & .lib cannot be created ?

3F commented 8 years ago

For problem 2:

I also think about some options to interact with user, for example, like I implemented with namespaces:

dynamic_ns

because even if you know about this restriction, you simply may forget about this and then to think... what's going on

3F commented 8 years ago

908a7c2 - I added GUI settings for problem 2:

platform_gui

you can check it from nightly builds before public release

3F commented 8 years ago

cfg_exp lib