So we were working on a naming scheme that was using the ':'
(colon) character as a separator for our Octopus Environment names. This all works great until you go and deploy it at which point you end up with this exception:
Package will be extracted to: C:\OctopusTentacle\Applications\UAT:US
The given path's format is not supported. System.NotSupportedException: The given path's format is not supported. at System.Security.Util.StringExpressionSet.CanonicalizePath(String path, Boolean needFullPath) at System.Security.Util.StringExpressionSet.CreateListFromExpressions(String[] str, Boolean needFullPath)
So obviously, since the name is used verbatim as a file system path, the ':'
is illegal in this context.
My personal preference would be to continue to allow the ':'
in the Octopus Environment name since it is useful, but introduce a “cleansing” step when generating the path name for output to disk. Maybe something as simple as replacing all Path.IllegalPathChars
with "~~"
.