【问题标题】:How can I specify T4 (Text Templates) to use C# 4.0, in VS2010?如何在 VS2010 中指定 T4(文本模板)以使用 C# 4.0?
【发布时间】:2009-10-07 11:52:46
【问题描述】:

我需要指定我的 T4 以使用 C# 4.0 来呈现我的 tt 文件吗?我尝试使用

<#@ template language="C#v4.0" debug="true" #>

但是当我使用动态变量时,像这样

dynamic x=10;
Write(x.ToString());

我收到这些错误

Error   2   Compiling transformation: Predefined type 'Microsoft.CSharp.RuntimeBinder.CSharpSetMemberBinder' is not defined or imported e:\projects\DynamicModel\DynamicModel\ModelGenerator.tt 1   1   
Error   3   Compiling transformation: Missing compiler required member 'Microsoft.CSharp.RuntimeBinder.CSharpInvokeMemberBinder..ctor'  e:\projects\DynamicModel\DynamicModel\ModelGenerator.tt 1   1   
Error   4   Compiling transformation: Missing compiler required member 'System.Runtime.CompilerServices.CallSite.Create'    e:\projects\DynamicModel\DynamicModel\ModelGenerator.tt 1   1   
Error   5   Compiling transformation: One or more types required to compile a dynamic expression cannot be found. Are you missing references to Microsoft.CSharp.dll and System.Core.dll?   e:\Projects\DynamicModel\DynamicModel\ModelGenerator.tt 7   8   
Error   6   A namespace cannot directly contain members such as fields or methods   e:\projects\DynamicModel\DynamicModel\ModelGenerator.cs 1   1   DynamicModel

另外,请注意我使用的是 TextTemplatingFileGenerator 和 Not 预处理器模板

【问题讨论】:

  • 你试过看VS2010提供的模板吗?
  • 是的,只要不使用动态变量就可以了

标签: .net c#-4.0 t4 visual-studio-2010 texttemplate


【解决方案1】:

发现您也应该指定正确的程序集。

添加这将确保您使用的是 c# 4.0。

<#@ template language="C#" debug="true" #>
<#@ output extension=".txt" #>
<#@ Assembly Name="System.Core, Version=4.0.0.0, Culture=neutral" #>
<#@ Assembly Name="Microsoft.CSharp, Version=4.0.0.0, Culture=neutral" #>

然而,由于某种原因,在 t4 转换期间,动态调度仍然无法从 T4 工作,想知道为什么。从 T4 开始,它会引发运行时错误,直接从 cs 文件中执行相同的代码。

【讨论】:

【解决方案2】:

我相信默认情况下,T4 引擎只能使用 4.0,尽管我会确保您引用的任何 DLL 对您的错误都是正确的。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-04-02
    • 2012-04-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多