Как узнать полные пути к DLL из файла.csproj?

Интересно, есть ли какой-нибудь способ узнать полные пути к DLL, которые перечислены в файле.csproj.

Самым интересным для меня является определение путей к 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 и пытаться разрешить имя данной библиотеки? Или что?

2 ответа

Решение

Первое место, которое вы бы проверили, это GAC. Если ссылка отсутствует в GAC, то чаще всего под ссылкой будет относительный или абсолютный путь, например:

<Reference Include="mydll">
  <HintPath>..\..\mydll.dll</HintPath>
</Reference

Если это какая-либо библиотека.NET, как вы, например, вы, то они, как правило, будут находиться в следующей папке: C:\Windows\Microsoft.NET\Framework\<.net version>\ или в GAC указывается, что угодно. В противном случае будет HintPath, который будет относительным путем к вашей текущей папке.

Другие вопросы по тегам