在 Visual Studio Web 应用程序项目中,通过文件属性窗口设置的自定义工具信息按文件存储在 CSPROJ 项目文件中。
在 Visual Studio 网站项目中,没有项目文件,只有带有一些全局配置的 SLN 文件。据我所知,这里没有存储任何文件特定的信息,这应该是网站项目类型的重点。
我仍然可以将普通和预处理(运行时)T4 文本模板添加到网站项目中,但是无法通过文件属性窗口进行自定义工具配置。尽管如此,Visual Studio 知道并记住哪个模板属于哪个类型,即使用“TextTemplatingFileGenerator”作为普通模板或“TextTemplatingFilePreprocessor”作为预处理模板,并且生成的输出是正常的。
这适用于 Visual Studio 2010 和 2012 中的新网站项目,但不适用于我手头的网站项目,该项目是手动从 Web 应用程序转换为网站的。该项目中所有预处理的 T4 文本模板都将自动使用“TextTemplatingFileGenerator”进行处理,似乎无法更改这一点。当然,由于缺少类,模板会崩溃,并且项目之后无法构建。
那么Visual Studio是如何管理网站项目中T4模板的自定义工具信息的呢?
如果“添加新项目”对话框中没有预编译文本模板选项,我会说网站项目根本不支持自定义工具。但是文本模板在那里并且在某些情况下可以正常工作。