Так что я действительно изо всех сил пытаюсь это выяснить.
У меня есть решение с несколькими проектами, скажем, A, B и C. Ссылки A и использование B и C (обе ссылки проекта),Я хотел создать пакет Nuget из A, и я сделал это успешно, хотя мне пришлось прыгнуть несколько обручей, используя такие вещи, как:
<ProjectReference Include="..." PrivateAssets="All" />
...
<Target Name="CopyProjectReferencesToPackage" DependsOnTargets="ResolveReferences">
<ItemGroup>
<BuildOutputInPackage Include="@(ReferenceCopyLocalPaths->WithMetadataValue('ReferenceSourceTarget', 'ProjectReference')->WithMetadataValue('PrivateAssets', 'All'))" />
</ItemGroup>
</Target>
Однако я хотел бы также отладить через мойПакет Nuget, поэтому я нашел несколько хитростей для этого.Можно было бы скопировать pdb в nupkg, хотя это не рекомендуется.Он предположительно работает с этой строкой в вашем файле csproj .Это добавляет pdb к nupkg, но добавляется только A.pdb
.
В противном случае можно / нужно создать файл A.symbols.nupkg
.Я пытался сделать это с помощью тегов, таких как DebugSymbols
, DebugType
, EmbedSources
и IncludeSymbolsInPackage
, но безрезультатно.
Я также пытался > dotnet pack A.csproj --include-symbols --include-source
, и это генерирует A.nupkg
и A.symbols.nupkg
, но внутри символов только A.pdb
, а не B.pdb
и C.pdb
.
Поэтому я предполагаю, что мой вопрос таков: Как создать пакет nuget из многопроектного решения, в котором вы можете отлаживать (например, включая pdb или символы / источники, не один, а из всех упомянутых)проекты)?
TLDR: я уже видел много потенциальных решений, но до сих пор ни один не работал.
Некоторые из моих последних курортов могут быть следующими: просто добавить все содержимое B и C в A, чтобы остался только один проект, или создать скрипт powershell, чтобы вручную добавить все pdb в A.symbols.nupkg
.Конечно, я бы хотел более простое решение, если оно есть.