Arcade's Publish.proj needs to provide a mechanism for uploading files other than PDBs
See original GitHub issue- This issue is blocking --> not blocking but makes finding and loading matching symbols automatedly very hard
- This issue is causing unreasonable pain --> Blocks debugging winforms designer crashes via automated symbol server loading of PDBs
See https://github.com/dotnet/arcade/blob/master/src/Microsoft.DotNet.Arcade.Sdk/tools/Publish.proj#L164-L166 . From discussing this with @mikem8361 , this task should be uploading the matching DLLs at the same time so they can be indexed and loaded.
It might be as easy as adding a line to glob in DLLs:
<ItemGroup>
<FilesToPublishToSymbolServer Include="$(ArtifactsSymStoreDirectory)**\*.pdb"/>
<FilesToPublishToSymbolServer Include="$(ArtifactsSymStoreDirectory)**\*.dll"/>
</ItemGroup>
… in addition to making sure “the right” DLLs are copied under ArtifactsSymStoreDirectory
Details
-
This doesn’t impact other repos like ASP or Runtime because:
- Their interesting stuff is all published in nupkg & symbols.nupkg format
- Their symbols.nupkgs include the DLLs they’re indexing
- That said, if there are DLLs that aren’t also contained in a nupkg, it’s entirely possible there are non-indexed DLLs from runtime or other repos too.
-
This does affect winforms-designer because:
- At least in the builds I’ve looked at their only nupkg is just a reference assembly one that doesn’t contain PDBs
- They publish their PDBs independently of nupkgs, so go down a slightly different path.
In order to fix this:
In Arcade, we will need to:
- Also glob binaries (.dll, .exe, possibly others?) when selecting files to publish to symbol servers (currently **/*.pdb only)
- Ensure that the Yaml templates provided for publishing work for this (looks like if the DLLs are included anywhere within “PDBArtifacts” artifact, it just works, otherwise we need to intentionally download one more artifact, call it something like “DLLsToIndex”
- [STRETCH] Potentially teach the symbols publishing task to know how to unpack vsix files (tricky because it includes DLLs we don’t publish)
Issue Analytics
- State:
- Created 3 years ago
- Comments:25 (25 by maintainers)
Top Results From Across the Web
BIM 360 Help | Upload and Publish Documents
Upload and Publish Files. Use this method for non-linked PDFs, drawings and design files. The workflow for uploading PDFs differs from other files,...
Read more >Upload Files or Folders to the Project Level Documents Tool
Objective. To upload files and folders to a project's Documents tool. Things to Consider. Required User Permissions:.
Read more >Uploading Files — Flask Documentation (2.3.x)
So first we need a couple of imports. Most should be straightforward, the werkzeug.secure_filename() is explained a little bit later. The UPLOAD_FOLDER is...
Read more >Upload files and folders to a library
In File Explorer, locate the file you want to upload. Select the file, then on the toolbar, select the Cut option. In File...
Read more >POST method uploads - Manual
POST method uploads ¶. This feature lets people upload both text and binary files. With PHP's authentication and file manipulation functions, you have...
Read more >Top Related Medium Post
No results found
Top Related StackOverflow Question
No results found
Troubleshoot Live Code
Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start FreeTop Related Reddit Thread
No results found
Top Related Hackernoon Post
No results found
Top Related Tweet
No results found
Top Related Dev.to Post
No results found
Top Related Hashnode Post
No results found
Top GitHub Comments
@MattGal , thank you for your help on this. Our latest build from master is at https://dnceng.visualstudio.com/internal/_build/results?buildId=816181&view=results. I’ve downloaded the vsix and run symchk against the dll’s within, and I got no errors back.
So we should be good. Feel free to close out this issue. 😄
Ok things are looking good 😄
Here’s what I did to verify:
del /a /s "<vsixUnzippedFolder>\*.resources.dll"
symchk.exe "<vsixUnzippedFolder>" /r /s SRV*http://symweb
When I ran that command, I see this:
The two failed files are not ours.
So I think it’s safe to say that this is working properly. I’m going to PR into our github branch and verify again there, but I think we’re good. 😄
/cc: @JeremyKuhne @dreddy-work @Shyam-Gupta @merriemcgaw