Учитывая сборку. NET, как мы можем программно проверить, встраивает ли она переносную PDB? - PullRequest
0 голосов
/ 08 января 2020

Итак, я думал, что прибил это со следующим кодом:

using (var peReader = new PEReader(stream = File.OpenRead(args[0])))
{
    bool found = peReader
        .ReadDebugDirectory()
        .Any(e => e.Type == DebugDirectoryEntryType.EmbeddedPortablePdb);
    stdout.WriteLine(found);
}

Нет. Я создал новый. Net Базовый проект с Portable PDB. Метод ReadDebugDirectory возвращает две записи типов:

  1. CodeView
  2. Reproducible

Итак, проверка должна быть более сложной, но я в растерянности, что именно должно быть сделано.

Кстати, JetBrains dotPeek действительно показывает, что сборка имеет переносной PDB:

enter image description here

К сожалению, их логика c недоступна в виде пакета NuGet ...

Итак, как можно это сделать надежно?

PS

Идеальным решением был бы сценарий powershell (не pw sh), но код C# тоже подойдет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...