7

我正在尝试从 VS2012 项目生成代码进行一些实验,但我无法使这段 t4 代码工作

var project = VisualStudioHelper.CurrentProject;

因为找不到 VisualStudioHelper。

为了使 VisualStudioHelper 可用,我应该在我的 t4 中安装/包含什么?

4

3 回答 3

7

VisualStudioHelper 是来自有形 T4 编辑器的自定义类。

为了使用这个类,为你的 Visual Studio 安装有形 T4 编辑器,然后:

  1. 在 Visual Studio 中打开有形 T4 菜单,然后单击模板库。
  2. 单击左下角的“立即更新”图标。
  3. 从目录树中选择:Tangible > Visual Studio CodeModel。
  4. 在文件菜单中,鼠标右键单击“Walking the Visual Studio Code Model”并选择“添加到解决方案...”
  5. 选择“VisualStudioHelper.ttinclude”。
  6. 在您的 .tt 文件中,请参考 VisualStudioHelper,如下所示:

<#@ include file="VisualStudioHelper.ttinclude" #>

于 2013-11-21T21:17:57.060 回答
1

VisualStudioHelper有形的 T4 Editor知道。它是免费的,并带有一个模板库,提供有用的 T4 模板,您可以将其包含在您的模板中,例如用于访问 Visual Studio 功能或项目配置等。

也许你应该去那里看看。

编辑: 您应该在图库中查找的模板名为“tangible Visual Studio Automation Helper”

于 2013-07-17T06:42:00.743 回答
1

是什么VisualStudioHelper?这似乎是一个自定义的东西,而不是 T4 模板引擎内置的东西。如果您需要访问当前项目,您可以试试这个:

var dte = (EnvDTE.DTE)((IServiceProvider)Host).GetService(typeof(EnvDTE.DTE));
var project = dte.Solution.FindProjectItem(Host.TemplateFile).ContainingProject;

不要忘记在 T4 模板顶部导入程序集:

<#@ assembly name="EnvDTE" #>
于 2013-07-16T20:42:54.523 回答