我无法理解Visual Studio将依赖项解析为.NET dll的机制。在某些.csproj
文件中,我有一些依赖关系如下。
<Reference Include="SomeDependency,
Version=SomeVersion,
Culture=neutral,
PublicKeyToken=SomePublicKeyToken,
processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>SomeHintPath</HintPath>
</Reference>
但是,HintPath
指向了无效路径,但Visual Studio能够根据需要构建和部署项目,显然是从其他地方的获取dll 。在我的情况下,这不是一个主要问题,因为最终结果是所希望的,但我最终不了解哪个机制依赖于.NET dll得到解决。
如何在构建Visual Studio项目时找出实际引用的dll? dll允许的位置是什么?
答案 0 :(得分:1)
您可以使用以下代码确定所有已加载的程序集,并检查它们的路径:
AppDomain ad = AppDomain.CurrentDomain;
Assembly[] loadedAssemblies = ad.GetAssemblies();
Console.WriteLine("Here are the assemblies loaded in this appdomain\n");
foreach (Assembly a in loadedAssemblies)
{
Console.WriteLine(a.FullName);
}
来自帖子(Determine Loaded Assemblies)
以下是&#34;运行时如何找到程序集&#34;
的文档https://msdn.microsoft.com/en-us/library/yx7xezcf(v=vs.110).aspx