Today I had a small talk with my brother about generating custom symbols from C/Side and how to manage that.
Here is how I did it.
At the company I work for we have a DTAP environment and we (normally) only code in Development. Fobs and Extensions are moved from Development to Test, Acceptance and Production.
The quesion is how to control your symbols and move them together with each iteration.
Surely you can generate symbols in your production database but that might not be super smart. Alternatively you can move your Application App file together with the rest.
You need two PowerShell commands.
Unpublish-NAVApp -ServerInstance NAV2018PROD -Name "Application" Publish-NAVApp -ServerInstance NAV2018PROD -Path "\\Symbols\Application.app" -PackageType SymbolsOnly -SkipVerification
You need to make sure that the flags for Development in the Server Config are false.
Sometimes Symbols can break if someone in a Development database changes an object in C/Side without saving the changes.
Another developer doing an extension can be hurt by that if he decides to refresh the symbols at the same time.
The simplest and official answer is to introduce the concept of distrubuted development where each developer has their own Development system and you have a build server creating the test envinronment if the build passes and execute the automated tests.
But in our ecosystem many partners seem to prefer centralised development and then you could consider to also disable the loading of the symbols on object changes and introduce a symbol database. (SDTAP).
Another alternative might be to introduce versions of the Application symbols but this is something I haven’t tried myself.
Not sure if that would work but I thought it was worth sharing.
Question: How do you manage your custom Application Symbols?
I am still looking for good way and best will be some package management for it. May be using tfs as package source and using nuget or something like that?