如何在每次构建时自动构建一个 T4 模板并指定命名空间?

3
我有一个T4模板,生成一个可以在运行时用于构建文档的类。在模板文件的属性中,自定义工具设置为“TextTemplatingFilePreprocessor”,我还为自定义工具命名空间属性设置了一个自定义命名空间。
如果我右键单击模板并选择“运行自定义工具”,或者选择“生成->转换所有T4模板”,则代码将被正确生成。但是,我一直在尝试使用Microsoft.TextTemplating.targets生成任务在构建时自动生成模板,如此描述:https://learn.microsoft.com/en-us/visualstudio/modeling/design-time-code-generation-by-using-t4-text-templates#Regenerating。当我这样做时,文件会重新生成,但会忽略自定义工具命名空间。
所以:如何在每次构建时自动构建T4模板并指定命名空间?
1个回答

0
最终找到了解决方法:将csproj文件中的标签替换为标签。

嗨,我遇到了完全相同的问题。你能详细说明一下吗?你替换了哪个标签? - Tomer W
@TomerW 很晚回复,但我的答案由于糟糕的格式而无法阅读。现在应该可以阅读了。 - scott
谢谢...事实上,我找到了另一种方法...我使用Microsoft.Text.Templating构建了一个工具来编译类...但这似乎更正确。我想我会重新做一下 :) - Tomer W
然而,我的csproj文件中没有<CustomToolNamespace>标签... 我应该为每个文件添加<ClassNamespace>标签吗?我不明白,抱歉。 - Tomer W
我解决了这个问题。如果您转到tt文件的属性,那里有一个“Custom Tool Namespace”。填写它。然后,您将看到csproj文件已更改并包含一个<CustomToolNamespace>标记。将其更改为<ClassNamespace> - Marnix

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接