private IEnumerable <IDirectory> GetTratsformExePossibleLocations() { var vsVersion = Context.Environment.GetVariable("VisualStudioVersion"); var commonProgramFiles = Context.Environment.GetVariable("COMMONPROGRAMFILES(x86)") ?? Context.Environment.GetVariable("COMMONPROGRAMFILES"); var commonProgramFilesDirectory = new DefaultDirectory(commonProgramFiles); if (!string.IsNullOrEmpty(vsVersion)) { yield return (commonProgramFilesDirectory.GetDirectory( @"Microsoft Shared\TextTemplating\").GetDirectory(vsVersion)); } var versions = new[] { "10.0", "11.0", "12.0", "13.0", "14.0" }; foreach (var version in versions) { commonProgramFilesDirectory.GetDirectory( @"Microsoft Shared\TextTemplating").GetDirectory(version); } }