Могу ли я запустить SourceLink вручную на существующих файлах PDB? - PullRequest
0 голосов
/ 15 января 2019

Предположим, что я создал (C ++ или .NET) библиотеку из исходного кода, поэтому у меня есть локальный исходный код и файлы PDB, но я не хочу изменять код библиотеки, например добавьте /SOURCELINK или пакет nuget .

Можно ли запустить sourcelink в командной строке, чтобы связать эти существующие PDB с хранилищем git?

1 Ответ

0 голосов
/ 28 января 2019

Если вы не изменили исходный код, то да, в некотором роде, но вы должны вручную загрузить файлы .PDB и включить их в вашу скомпилированную выходную папку, а затем загрузить в git с соответствующим файлом .json, соответствующим следующая схема:

Файл конфигурации JSON содержит простое сопоставление локального файла путь к URL, где исходный файл может быть получен через http или https. Отладчик получит исходный путь к файлу текущего местоположение из PDB, найдите этот путь на карте Source Link и используйте полученный URL для загрузки исходного файла.

Схема файла JSON:

{
    "$schema": "http://json-schema.org/draft-04/schema#",
    "title": "SourceLink",
    "description": "A mapping of source file paths to URLs",
    "type": "object",
    "properties": {
        "documents": {
            "type": "object",
            "minProperties": 1,
            "additionalProperties": {
                "type": "string"
            },
            "description": "Each document is defined by a file path and a URL. Original source file paths are compared 
                             case-insensitively to documents and the resulting URL is used to download source. The document 
                             may contain an asterisk to represent a wildcard in order to match anything in the asterisk's 
                             location. The rules for the asterisk are as follows:
                             1. The only acceptable wildcard is one and only one '*', which if present will be replaced by a relative path.
                             2. If the file path does not contain a *, the URL cannot contain a * and if the file path contains a * the URL must contain a *.
                             3. If the file path contains a *, it must be the final character.
                             4. If the URL contains a *, it may be anywhere in the URL."
        }
    },
    "required": ["documents"]
}

К сожалению, я не нашел утилиту командной строки для создания этих файлов, кроме запрещенной /SOURCELINK в исходном посте.

...