0

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

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

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

这适用于 Visual Studio 2010 和 2012 中的新网站项目,但不适用于我手头的网站项目,该项目是手动从 Web 应用程序转换为网站的。该项目中所有预处理的 T4 文本模板都将自动使用“TextTemplatingFileGenerator”进行处理,似乎无法更改这一点。当然,由于缺少类,模板会崩溃,并且项目之后无法构建。

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

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

4

2 回答 2

0

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

我仍然不知道预编译的 T4 文本模板应该如何与网页类型的项目一起使用。如果您了解更多,请随时扩展此内容。

于 2013-04-25T10:12:21.437 回答
0

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

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

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

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

于 2013-05-21T02:45:58.297 回答