无法让T4MVC与VS2010和ASP.NET MVC 2一起使用

Tom*_*han 8 asp.net-mvc t4 visual-studio-2010 t4mvc

我正在尝试将T4MVC模板添加到我的项目中,但我遇到了一些问题.我去了Codeplex上,并下载最新版本的T4MVC的,并根据指示,我刚才复制的两个文件T4MVC.tt,并T4MVC.Settings.t4到我的web应用程序的根目录.

我立刻得到了以下错误:

T4MVC.cs(生成的文件):

命名空间不能直接包含字段或方法等成员

T4MVC.tt(代码生成模板):

编译转换:找不到类型或命名空间名称'ITextTemplatingEngineHost'(您是否缺少using指令或程序集引用?)

当我打开时T4MVC.cs,它只包含一行:

ErrorGeneratingCode
Run Code Online (Sandbox Code Playgroud)

我发现这篇文章建议再次构建,但该解决方案并不能解决我的问题 - 事实上,它并没有改变一件事.我该怎么办?

Tom*_*han 18

好的,我明白了.问题是,自上次发布T4MVC软件包以来,微软改变了ITextTemplateHost接口的位置,因此我需要导入另一个名称空间.此外,.dll具有这些命名空间的文件不会导入默认的ASP.NET MVC模板项目中.这就是我做的工作:

  1. 添加对以下.dll文件的引用(括号中我的计算机上的搜索路径):

    • Microsoft.VisualStudio.TextTemplating.10.0.dll(C:\ Windows\Microsoft.NET\assembly\GAC_MSIL\Microsoft.VisualStudio.TextTemplating.10.0\v4.0_10.0.0.0__b03f5f7f11d50a3a\Microsoft.VisualStudio.10.0.dll)

    • Microsoft.VisualStudio.TextTemplating.Interfaces.10.0.dll(C:\ Windows\Microsoft.NET\assembly\GAC_MSIL\Microsoft.VisualStudio.TextTemplating.Interfaces.10.0\v4.0_10.0.0.0__b03f5f7f11d50a3a\Microsoft.VisualStudio.TextTemplating.Interfaces .10.0.dll)

  2. 确保导入以下命名空间T4MVC.tt(只需按照文件中已有的语法).

    • Microsoft.VisualStudio.TextTemplating

    • Microsoft.VisualStudio.TextTemplating.Interfaces

  3. 删除所有生成的代码文件(如果T4MVC.tt在"解决方案资源管理器"中展开,则会显示它们).

  4. 建立项目.如果没有生成文件,请打开T4MVC.tt,编辑,不要保存和构建.应该这样做!