Las herramientas .NET lanzadas recientemente parecen tener soporte para incrustar C# en PDB , lo que debería mejorar la experiencia de ingresar a terceros, etc. Ejecutar csc /? , puedo ver claramente la opción /incrustar: "Incrustar todos los archivos de origen en el PDB".
Sin embargo, no parece haber ninguna forma de especificar esto en csproj. Además, no parece haber ninguna disposición para pasar cambios arbitrarios al compilador, que usaría para pasar/incrustar manualmente.
¿Alguien puede confirmar que no me he perdido nada y que actualmente falta soporte de compilación para /embed? ¿Hay algún problema para esto (y si no, a dónde iría)? Cualquier solución sugerida también sería apreciada.
Ahora hay una propiedad MSBuild EmbedAllSources adecuada:
<Project Sdk="Microsoft.NET.Sdk"> <PropertyGroup> <TargetFramework>netstandard2.0</TargetFramework> <EmbedAllSources>true</EmbedAllSources> [...] Por lo que observé localmente, se comporta igual que el objetivo EmbedFiles mencionado.
Parece que la tarea roslyn debería admitirlos a través del grupo de elementos EmbeddedFiles , al agregar esto a su .csproj:
<Target Name="EmbedSources" BeforeTargets="CoreCompile"> <ItemGroup> <EmbeddedFiles Include="@(Compile) " /> </ItemGroup> </Target>...que es básicamente lo que hace la opción /embed .
Probablemente también deba proporcionar un archivo json de SourceLink para conectar las fuentes en el PDB, no estoy seguro de que eso suceda automáticamente.