diff --git a/build/_k-generate-projects.shade b/build/_k-generate-projects.shade index 836ab15d18..8a50d94abb 100644 --- a/build/_k-generate-projects.shade +++ b/build/_k-generate-projects.shade @@ -193,20 +193,35 @@ functions configs["k10"] = new Dictionary(); configs["net45"] = new Dictionary(); } + + // Templates + const string csTemplate = @""; + const string resxDesignerTemplate = @" + {1} + True + True + "; + const string resxTemplate = @" + {1}.{2}.resources + ResXFileCodeGenerator + {2}.Designer.cs + {1}.Resources +"; + // Build the list of resx files + var resxFileNames = FindFilesOfType(projectDir, "*.resx"); + var resxDesignerFiles = new HashSet(resxFileNames.Select(f => Path.ChangeExtension(f, "Designer.cs")), + StringComparer.OrdinalIgnoreCase); + + var resxFiles = String.Join(Environment.NewLine, + resxFileNames.Select(p => String.Format(resxTemplate, p, projectName, Path.GetFileNameWithoutExtension(p)))); + // Build the list of cs files var csFiles = String.Join(Environment.NewLine, FindFilesOfType(projectDir, "*.cs") - .Select(p => String.Format(@"", p))); - - // Build the list of resx files - var resxFiles - = String.Join(Environment.NewLine, - FindFilesOfType(projectDir, "*.resx") - .Select(p => String.Format(@" - {1}.{2}.resources -", p, projectName, Path.GetFileNameWithoutExtension(p)))); + .Select(p => resxDesignerFiles.Contains(p) ? String.Format(resxDesignerTemplate, p, Path.ChangeExtension(Path.GetFileNameWithoutExtension(p), "resx")) : + String.Format(csTemplate, p))); bool isSample = Path.GetDirectoryName(projectDir) .TrimEnd(Path.DirectorySeparatorChar)