我想知道是否有某种方法可以知道.csproj文件中列出的dll的完整路径。
对我来说最有趣的是解析默认dll的路径,如System.Xml.dll,System.Data.dll等。
在.csproj文件中,只有短名称的行:
<Reference Include="System.Xml.Linq">
<RequiredTargetFramework>3.5</RequiredTargetFramework>
</Reference>
<Reference Include="System.Data.DataSetExtensions">
<RequiredTargetFramework>3.5</RequiredTargetFramework>
</Reference>
<Reference Include="System.Data" />
<Reference Include="System.Xml" />
我应该查看$ PATH变量并尝试解析给定的dll名称吗?或者是什么?
答案 0 :(得分:1)
您要检查的第一个地方是GAC。如果引用不在GAC中,那么通常会在Reference之下存在相对或绝对路径,如下所示:
<Reference Include="mydll">
<HintPath>..\..\mydll.dll</HintPath>
</Reference
答案 1 :(得分:1)
如果它的任何.NET库都像你一样,那么它们通常位于以下文件夹中:C:\ Windows \ Microsoft.NET \ Framework \&lt; .net版本&gt; \或whaterver在GAC中指定。否则会有一个HintPath,它将是当前文件夹的相对路径。