Question:
How can I get the .NET Core SDK to work on Docker? I get the following exception: Unhandled Exception: System.DllNotFoundException: Unable to load shared library 'PDFNetC' or one of its dependencies.
Answer:
The project needs to know where the shared lib is located. You can achieve this by any one of the following 2 approaches.
Approach 1:
You will
add the following to the Docker file:
COPY libPDFNet* /usr/lib/
RUN rm /usr/lib/libPDFNetC.so;\
mv /usr/lib/libPDFNetC.so.6.10.0 /usr/lib/libPDFNetC.so
Adding the above commands will resolve the following two issues:
1. PDFTron's native library needs to be placed directly in "/usr/lib/" folder
2. Docker does not like how we symlink the so files, so removing the symlink is required
Approach 2:
1. Manually remove the symlink libPDFNetC.so
and rename the versioned so to libPDFNetC.so
2. Edit the .csproj file to directly point to libPDFNetC.so
<Content Include="/src/MyApp/libPDFNetC.so">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>