-
Notifications
You must be signed in to change notification settings - Fork 224
Source Index and pack .pdb files into regular .nupkg #380
Comments
We want to keep the sizes of the regular NUPKGs that users use to be as small as possible - I think that's the main benefit of the separate |
This would definitely provide better/cleaner mapping between the built DLLs and the original source location. I made a little bit of progress on coming up with an example. I created an appveyor.yml to build the KRuntime. AppVeyor even creates a nuget feed for the artifacts. My question becomes, how do I install this custom build using Once that is figured out, the next step would be for me to figure out how to hook into SourceLink source indexing to the build. |
kvm install {pathtoyourcustombuild} |
I definitely think there should be a way to do this but baking it into the runtime isn't the best way to go about it. It's something you would do as a post build step. Also what Eilon said, you don't always want the PDB in the same package but it should be optional. |
Why don't you always want the PDB in the same package? It allows debugging and access to the source if you index it. |
Because PDBs can be huge. Why don't all the packages on nuget today have pdbs in them? Everybody understands that its nice to be able to debug packages but I don't think people always want to bloat the package size with pdbs and potentially the source. That's why it's a separate package. I do think there's a scenario where you do want to put them together but like I said, it cannot and will not be the only way to work. |
I'd like to discuss this a bit while here at the summit. :) |
@davidfowl is at the Summit all week, so feel free to corner him 😄 |
@ctaggart @davidfowl did you end up discussing this? I still don't see the system putting PDBs in the main NUPKG, which can already be a bit large when you have cross-compiled assemblies in there. Add to that N number of PDBs, and you end up with super huge NUPKGs. |
I didn't get a chance to. It does make them bigger, but it makes the open source projects much more open source. It is totally worth it. I really like source servers, but not symbol servers. I think the pdb files should be distributed with the nupkg files. May be NuGet 3 can make some design changes to accommodate so many cross-compiled assemblies and their xml and pdb files. http://ctaggart.github.io/SourceLink/ For SourceLink, I'm currently working on an issue and a SourceLink.SymbolStore library that would help: Enable Go To Definition (F12) should go to source if source symbols are available |
@pranavkm I think we should do this with our builds. Source link to github. Maybe we should file this in universe. It would require that we ship the pdbs in the package though. |
Awesome! Given that not everyone is using FAKE, I worked this weekend on a |
Closing this out as it's been moved to universe. |
Watching Deep Dive: The Future of .NET on the Server from TechEd, at 0:45:05 a discussion about *.symbols.nupkg begins. I think a better design is to source index the .pdb files and put them in the regular .nupkg. This has some advantages:
I wrote a library named SourceLink that helps automate this. Thanks for being open source and moving to GitHub! I'll try to put together and example that better explains what I'm talking about. I just want to see if ya'll may be open to this.
The text was updated successfully, but these errors were encountered: