Recentemente mi sono imbattuto in questo tweet di David Fowler che incitava i library authors ad abilitare source link nelle proprie librerie (se distribuite tramite NuGet) in modo da arricchire l’esperienza di utilizzo per i nostri eventuali utenti. Pertanto, mi son rimboccato le mani per la bellezza di 10 minuti e ho seguito questo how-to - Il risultato? Ora la mia library GL.Console.Secrets usa SourceLink :)

How To - Simplified

Lo step #1 è editare il file .csproj per includere i seguenti metadati all’interno della sezione PropertyGroup:

<PublishRepositoryUrl>true</PublishRepositoryUrl>
<EmbedUntrackedSources>true</EmbedUntrackedSources>
<AllowedOutputExtensionsInPackageBuildOutputFolder>$(AllowedOutputExtensionsInPackageBuildOutputFolder);.pdb</AllowedOutputExtensionsInPackageBuildOutputFolder>

Lo step #2 è aggiungere una reference al seguente package NuGet, sempre editando direttamente il .csproj della nostra libreria questa volta però nell’ItemGroup delle reference di progetto, in basso il mio esempio (la prima reference era già presente)

<ItemGroup>
  <PackageReference Include="System.Configuration.ConfigurationManager" Version="4.5.0" />
  <PackageReference Include="Microsoft.SourceLink.GitHub" Version="1.0.0-beta-63127-02" PrivateAssets="All"/>
</ItemGroup>

Una volta fatto - dopo aver fatto la build del progetto e rigenerato il package di NuGet, se lo apriamo con il NuGet Package Explorer, noteremo un nuovo nodo come evidenziato dall’immagine in basso. Questo nuovo nodo, indica che SourceLink è attivo.