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