I have trouble understanding the mechanisms by which Visual Studio resolves dependencies to .NET dlls. In some .csproj
file, I have some dependency as follows.
<Reference Include="SomeDependency,
Version=SomeVersion,
Culture=neutral,
PublicKeyToken=SomePublicKeyToken,
processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>SomeHintPath</HintPath>
</Reference>
However, the HintPath
pointed to an invalid path, yet Visual Studio was able to build and deploy the project as desired, apparently taking the dll from somewhere else. In my case, this wasn't a major problem as the final result was as desired, but I ultimately do not understand by which mechanism dependencies to .NET dlls are resolved.
How can I find out which dll is actually referenced when building a Visual Studio project? What are the permitted locations for dlls?