diff --git a/src/tools/dotnet.lua b/src/tools/dotnet.lua index af33ba6ec7..f933db899f 100644 --- a/src/tools/dotnet.lua +++ b/src/tools/dotnet.lua @@ -45,7 +45,7 @@ info.action = "Compile" elseif fcfg.buildaction == "Embed" or ext == ".resx" then info.action = "EmbeddedResource" - elseif fcfg.buildaction == "Copy" or ext == ".asax" or ext == ".aspx" or ext == ".dll" then + elseif fcfg.buildaction == "Copy" or ext == ".asax" or ext == ".aspx" or ext == ".dll" or ext == ".tt" then info.action = "Content" elseif fcfg.buildaction == "Resource" then info.action = "Resource" @@ -117,6 +117,13 @@ info.SubType = "Form" end + testname = basename .. ".tt" + if project.hasfile(fcfg.project, testname) then + info.AutoGen = "True" + info.DesignTime = "True" + info.DependentUpon = testname + end + end -- Allow C# object type build actions to override the default @@ -168,6 +175,15 @@ end end + if info.action == "Content" and fname:endswith(".tt") then + local testname = fname:sub(1, -4) .. ".cs" + if project.hasfile(fcfg.project, testname) then + info.Generator = "TextTemplatingFileGenerator" + info.LastGenOutput = path.getname(testname) + info.CopyToOutputDirectory = nil + end + end + if info.action == "None" and fname:endswith(".xsd") then local testname = fname:sub(1, -5) .. ".Designer.cs" if project.hasfile(fcfg.project, testname) then diff --git a/tests/actions/vstudio/cs2005/test_files.lua b/tests/actions/vstudio/cs2005/test_files.lua index 4e5d51766f..f5fe5604c0 100755 --- a/tests/actions/vstudio/cs2005/test_files.lua +++ b/tests/actions/vstudio/cs2005/test_files.lua @@ -127,6 +127,21 @@ ]] end + function suite.textTemplatingDependency() + files { "foobar.tt", "foobar.cs" } + prepare() + test.capture [[ + + True + True + foobar.tt + + + TextTemplatingFileGenerator + foobar.cs + + ]] + end -- -- File associations should always be made relative to the file