We have an environment specific transform a part of our deployment. It appears that the ‘External’ transform is being applied on top of the release transform, rather than onto the config itself. This means that we do not get these transforms in the final file. Surely this is a bug?
I had this same issue in Octopus Deploy 2.0.13.1100.
I had a Web.Release.config and a Web.Dev.config file in my solution. When I deployed to my DEV environment the Web.Release.config transformation was applied first, followed by the Web.Dev.config, except the second transformation was applied to the already transformed file.
This resulted in an exception e.g. when applying this standard transformation <compilation xdt:Transform="RemoveAttributes(debug)" />
This was resolved by removing all config transformation files for which I did not have an environment for. Is this normal though?
This is by design - we assume that Web.Release.config is what you want to run whenever you release anything to any environment. It sounds like you actually have an environment called “Release” though, which your web.release.config is intended for. Is that right?
Not quite. I have a web.release.config in my solution and a build configuration but only because Visual Studio put it there. I guess that I just assumed it wouldn’t matter, thinking that irrespective of how many configs I have in my solution octopus would first scan for environment matching transformations, apply those, and only defaulting to the release configuration if it couldn’t find a match.