可以直接在 VS2008 中调用 T4 自定义工具 TextTemplatedFileGenerator,例如使用插件

发布于 2024-12-20 04:12:59 字数 366 浏览 1 评论 0原文

我想知道是否可以直接在 VS2008 中调用 T4 自定义工具 TextTemplatedFileGenerator,例如使用插件。

我遇到的情况是解决方案中有元数据 (xml) 文件。 T4 模板读取这些文件以在与元数据文件相同的文件夹中生成 C# 类文件。

目前,我使用 T4 模板扫描解决方案,搜索特定扩展名并创建文件。如果能够运行一个使用元数据文件路径调用模板的加载项,那就太好了。请注意,我广泛使用 VS 主机将生成的文件添加到项目中。

我想知道是否可以直接从加载项中调用 TextTemplatedFileGenerator,以及这是否能让我实现我想要的目标。

另外要考虑的是我正在使用 T4toolbox。

问候, 伊利亚斯

I want to know if it is possible to call the T4 custom tool TextTemplatingFileGenerator directly in VS2008, for e.g. using an addin.

The case I have is that I have metadata (xml) files in the solution. The T4 template reads these files to generate C# class files in the same folder as the metadata file.

Currently I have the T4 template scan the solution searching for a specific extension and creating files. It would be nice to be able to run an add-in that calls the template with the metadata file path. Note that I use the VS host quite extensively to add generated files to the projects.

I was wondering if I can call the TextTemplatingFileGenerator directly from within an add-in and if that would allow me to achieve what I want.

Also to be considered is that I am using the T4toolbox.

Regards,
Ilias

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

夜夜流光相皎洁 2024-12-27 04:12:59

是的,您当然可以调用 T4 服务来获取加载项。您不需要使用 TextTemplateFileGenerator,它主要是服务的薄包装。

在加载项中,将 DTE 对象转换为 IServiceProvider,然后向其请求 STextTemplate

将结果转换为 ITextTemplated,然后为每个要转换的模板调用 ProcessTemplate 方法。如果您进行多次调用,请将它们括在对 Begin/EndErrorSession 的调用中以消除重复输出。

回调和层次结构参数是可选的。

Yes, you can most certainly call the T4 service for an add-in. You won't need to use the TextTemplatingFileGenerator, which is mostly a thin wrapper around the service.

In an add-in, cast your DTE object to IServiceProvider and then ask it for STextTemplating.

Cast the result to ITextTemplating and then call the ProcessTemplate method for every template you want to transform. If you make multiple calls, then bracket them in calls to Begin/EndErrorSession to de-dupe output.

The callback and hierarchy parameters are optional.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文