Включить файлы 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