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

标签 asp.net-mvc visual-studio-2010 t4 t4mvc

我正在尝试将 T4MVC 模板添加到我的项目中,但遇到了一些问题。我去 Codeplex 下载了the latest version of T4MVC ,并根据说明我刚刚复制了两个文件T4MVC.ttT4MVC.Settings.t4进入我的网络应用程序的根目录。

立即,我收到以下错误:

来自 T4MVC.cs (生成的文件):

A namespace cannot directly contain members such as fields or methods


来自 T4MVC.tt (代码生成模板):
Compiling transformation: The type or namespace name 'ITextTemplatingEngineHost' could not be found (are you missing a using directive or an assembly reference?)


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

我找到了this post这表明只是重新构建,但该解决方案并不能解决我的问题 - 事实上,它不会改变任何事情。我该怎么办?

最佳答案

好的,我想通了。问题是显然自从 T4MVC 包的最后一个版本以来,微软改变了 ITextTemplateHost 的位置。接口(interface),所以我需要导入另一个命名空间。此外,.dll具有这些命名空间的文件不会导入到默认的 ASP.NET MVC 模板项目中。这就是我为使其工作所做的工作:

  • 添加对以下 .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)
  • 确保以下命名空间都被导入 T4MVC.tt (只需遵循文件中已有的语法)。
  • Microsoft.VisualStudio.TextTemplating
  • Microsoft.VisualStudio.TextTemplating.Interfaces
  • 删除所有生成的代码文件(如果您在解决方案资源管理器中展开 T4MVC.tt,它们会出现)。
  • 构建项目。如果没有生成文件,打开T4MVC.tt ,编辑一些东西,不要保存并 build 。应该这样做!
  • 关于asp.net-mvc - 无法让 T4MVC 与 VS2010 和 ASP.NET MVC 2 一起使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1906341/

    相关文章:

    c# - 适用于 ASP.NET MVC/C# 的 WFS(网络特征服务)

    javascript - 使用ajax将整个模型发布回 Controller

    visual-studio-2010 - MVC 3 文件、新项目的包管理器控制台中的 NuGet 错误

    c++ - 链接错误 : <LNK1120> <LNK2020> Implement one serialization data class in C++

    visual-studio - 修改外部文件时重建 T4 模板

    c# - 我可以自动将代码和新类放入我的解决方案的很多部分吗?

    asp.net-mvc - HTTP HEAD 请求和 System.Web.Mvc.FileResult

    visual-studio-2010 - 可用的 VS2010 修补程序列表

    c# - 如何将 .cs 输出添加到项目中?

    asp.net-mvc - 基于请求uri主机的路由