I just start to write a new application with Net Core 2.0
and I have this structure:
ConsoleApp
Library
the ConsoleApp
import the Library
reference that is a dll, and Library
import HtmlAgilityPack 1.8.0
that's the last version available.
When I run the ConsoleApp
, I get this error:
Unhandled exception of type 'System.IO.FileNotFoundException' in Library.dll Could not load file or assembly 'HtmlAgilityPack, Version=1.8.0.0, Culture=neutral, PublicKeyToken=bd319b19eaf3b43a'. The specified file could not be found.
The file is available, as you can see in the image:
Seems that I was able to fix the "bug". To summarize, I have two applications, the first one is a .NET Core Console Application, and the second one is a .NET Core Library. So I've removed the second assembly (.NET Core Library), and I've created the same project as .NET Standard Library.
I got the same problem: when I run the Console Application, the compiler shows the error message:
Unhandled exception of type 'System.IO.FileNotFoundException' in Library.dll Could not load file or assembly 'HtmlAgilityPack, Version=1.8.0.0, Culture=neutral, PublicKeyToken=bd319b19eaf3b43a'. The specified file could not be found.
So I've tried to install the HtmlAgilityPack
also on the Console Application, and, like dark magic, this worked perfectly.
So I guess that I should add the dependency used on the Library imported also to the Console Application, because .NET Core must be sure that all the dependencies of the imported Library are compatible with .NET Core.
IMHO, this should be specified by Microsoft, and again, this problem should be handled by Visual Studio itself. Why do I need to add the dependencies twice?
Of course, I'm not going to accept my own answer; I prefer to wait for someone who explains this situation.