If I interpret your question correcly, how you work with the artifacts depends on your build platform. It sounds like you are currently building from your development environment or locally. If you move to a build server (which could indeed be local too), it probably has some kind of artifact management that takes the result of the build to storage, where it's usually called an artifact. Later in your release pipeline/flow, you reference and use the artifact of a specific build pipeline and build version.
In my experience, how you format the contents of the artifact depends on how it should look when installed on the end user system, or if the artifact should be installed through some kind of store, how the store wants the structure. If you are deploying a web site to a webserver, the structure could be very similar to how you want it to look in the server. If you deploy an ipa, just store the ipa and the other resouces required. If you deploy a setup.exe, just store that. If you are to update a sql server, store scripts in a way that makes it easy for you to use them in the deploy stage.
Depending on your build server, a build results in a single artifact or multiple artifact. Depending on that, the artifact could either be containing the resources used for a single installation, or multiple folders containing resources for multiple installations. In the latter case, it's nice with a deployment pipeline that supports partial artifact downloads.
If you don't use a build server and want to keep it local, then aim to make it easy for you to find your consecutive releases and to use their contents. Think about the next step; what do you need to do with the result of the build in order to have it running on the target system.
TLDR;
- Source structure format
- Build
- End user structure format/installation structure format/store deployment format...
- Store as artifact
- Deploy from artifact (to user/server/store etc)