The public is not able to access the value via Macro.
My Work Around:
I edited the Page Template Layout since it is a dynamic ascx control
- Created a public property with get; set
- In the Page Load I set the property with the value from the web.config app setting.
- Assign the property into the layout, in my case the value is in the jS somefile.js?v={#=BuildVersion#}
This works greats and clear our caching issues when the production site is built. The Javascript files gets the last Build Number with each new build, forcing the proxy servers to grab a new copy of the js.