Включить файлы pdb в файлы nuget (nupkg)

Я использую MSBuild для создания своих пакетов nuget.

Есть ли какая-либо команда, которую мне нужно установить, чтобы она включала мои файлы .pdb для входа в источник во время отладки?

Я не хочу, чтобы исходные файлы были включены в проект, который вытягивает пакет nuget.

Ответ 1

Хотя это может не помочь в отладке, определенно полезно включать файлы .pdb, чтобы трассировки стека имели номера строк.

В файле nuspec добавьте элемент <files> (дочерний элемент <package>, sibling <metadata>). Это то, что у меня есть в одной из моих библиотек классов:

<files>
    <file src="bin\$configuration$\$id$.pdb" target="lib\net452\" />
</files>

Убедитесь, что цель - та же самая папка, где ваш файл .dll помещается в пакет.

Ответ 2

Если вы используете VS2017 15.4 или новее, вы можете определить свойство MSBuild в вашем файле проекта

<AllowedOutputExtensionsInPackageBuildOutputFolder>$(AllowedOutputExtensionsInPackageBuildOutputFolder);.pdb</AllowedOutputExtensionsInPackageBuildOutputFolder>

Это обсуждается в NuGet # 4142

Ответ 3

Обратитесь к этой ссылке. На самом деле вы должны добавить -Symbols в конец команды, чтобы создать пакет символов. Не следует добавлять файлы pdb в основной пакет nuget.

Ответ 4

С новым форматом csproj создание NuGet можно сделать проще с MSBuild. Чтобы включить ваши файлы pdb вам просто нужно ввести тег <IncludeSymbols>true</IncludeSymbols> в группе свойств. Это создаст дополнительный пакет .symbols.nupkg, который вы можете выпустить в свой канал.

Ответ 5

Включить Symbol и Source Server

При установке ProGet сканирует пакеты NuGet для файлов .pdb и делает их доступными в качестве сервера символов на URL/symbol/[FeedName]. Дополнительную информацию см. В разделе Сервер Symbol.

От: inedo.com