Skip to content

Instantly share code, notes, and snippets.

@Deneas
Created November 12, 2020 22:29
Show Gist options
  • Select an option

  • Save Deneas/aae3a25e96b74d2b2f9797e1698f65a5 to your computer and use it in GitHub Desktop.

Select an option

Save Deneas/aae3a25e96b74d2b2f9797e1698f65a5 to your computer and use it in GitHub Desktop.

Revisions

  1. Deneas created this gist Nov 12, 2020.
    25 changes: 25 additions & 0 deletions SingleCsFile.tt
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,25 @@
    <#@ template debug="false" hostspecific="True" language="C#" #>
    <#@ assembly name="System.Core" #>
    <#@ assembly name="EnvDte" #>
    <#@ import namespace="System.Linq" #>
    <#@ import namespace="System.IO" #>
    <#@ import namespace="System.Collections.Generic" #>
    <#@ import namespace="System.Text.RegularExpressions" #>
    <#@ import namespace="System" #>
    <#@ output extension=".generated.cs" #>
    namespace SingleFile {
    <#
    var root = Host.ResolvePath("");
    var outputFile = Host.TemplateFile.Substring(0,Host.TemplateFile.Length - 3) + ".generated.cs";

    var fileNames = Directory.EnumerateFiles(root, "*.cs", SearchOption.AllDirectories)
    .Where(f => !(f.StartsWith(root + "\\bin") || f.StartsWith(root + "\\obj") || f.EndsWith(outputFile)))
    .ToList();

    foreach(string fileName in fileNames)
    {
    var text = File.ReadAllText(fileName);
    WriteLine(text);
    }
    #>
    }