ama*_*int 5 .net t4 texttemplate visual-studio-2010-beta-1 c#-4.0
我需要指定我的T4使用C#4.0来渲染我的tt文件?我试过用
<#@ template language="C#v4.0" debug="true" #>
Run Code Online (Sandbox Code Playgroud)
但是当我使用动态变量时,就像这样
dynamic x=10;
Write(x.ToString());
Run Code Online (Sandbox Code Playgroud)
我收到这些错误
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
Run Code Online (Sandbox Code Playgroud)
另外,请注意,我用TextTemplatingFileGenerator和不预处理器模板
发现您还应该指定正确的程序集.
添加此项将确保您使用的是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" #>
Run Code Online (Sandbox Code Playgroud)
但是,出于某种原因,在t4转换期间,动态调度仍然无法从T4开始工作,不知道为什么.从T4开始会抛出运行时错误,相同的代码直接从cs文件中获得好处.
归档时间: |
|
查看次数: |
4324 次 |
最近记录: |