在Visual Studio网站项目中使用预编译的T4文本模板?

时间:2013-04-22 15:09:19

标签: asp.net visual-studio web t4 customtool

在Visual Studio Web应用程序项目中,通过文件属性窗口设置的自定义工具信息将基于每个文件存储在CSPROJ项目文件中。

在Visual Studio网站项目中,没有项目文件,只有具有某些全局配置的SLN文件。据我所知,这里没有存储文件特定信息,这应该是网站项目类型的全部要点。

我仍然可以将普通和预处理(运行时)T4文本模板添加到网站项目中,但是没有可以通过文件属性窗口进行自定义工具配置。尽管如此,Visual Studio知道并记住哪个模板属于哪种类型,即使用普通模板的“TextTemplatingFileGenerator”或预处理模板的“TextTemplatingFilePreprocessor”,生成的输出就可以了。

这适用于Visual Studio 2010和2012中的新网站项目,但它不适用于我手边的网站项目,该项目是从Web应用程序手动转换为网站的。使用'TextTemplatingFileGenerator'自动处理此项目中所有预处理的T4文本模板,似乎无法更改此设置。当然,由于缺少类,模板崩溃,之后项目无法构建。

那么Visual Studio如何管理网站项目中T4模板的自定义工具信息?

如果“添加新项”对话框中没有预编译的文本模板选项,我会说网站项目根本不支持自定义工具。但是文本模板在那里并且在某些情况下工作正常。

2 个答案:

答案 0 :(得分:0)

似乎我需要一些时间才能发现,没有什么能阻止我将模板移出Web项目并将它们放入库项目中,其中总是有一个项目文件,无论是什么,它都能正常工作Web项目的类型,它解决了我的问题。

我仍然不知道预编译的T4文本模板应该如何处理网页类型的项目。如果您了解更多信息,请随意扩展。

答案 1 :(得分:0)

项目模板中的自定义向导DLL在您执行“添加新项”时设置预处理项。 作为后备,项目只使用以下注册表项来设置常规模板。

HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\11.0_Config\Projects\{E24C65DC-7377-472b-9ABA-BC803B73C61A}\FileExtensions\.tt\CustomTool

如果您只有预处理模板,则可以将其更改为TextTemplatingFilePreprocessor而不是TextTemplatingFileGenerator

否则,从添加新项目对话框中重新添加一组文件并复制内容应该可以正常工作。