2009-10-07 9 views
5

Tt dosyalarımı oluşturmak için C4'ü C# 4.0 kullanmak için belirtmem gerekiyor mu? BenVS2010'da C# 4.0 kullanmak için T4 (Metin Şablonları) nasıl belirleyebilirim?

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

kullanarak çalıştı Ama bu

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

gibi bir dinamik değişken kullanırken ben TextTemplatingFileGenerator kullanıyorum unutmayın, bu hataları da

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 

alıyorum ve Not önizleme şablonları

+0

VS2010 ile birlikte verilen şablonlara bakmayı denediniz mi? – Lazarus

+0

Evet, dinamik bir değişken kullanmadığınız sürece iyi gider – amazedsaint

cevap

4

Doğru montajları da belirtmelisiniz.

Bunu eklemek C# 4.0 kullandığınızdan emin olur.

<#@ 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" #> 

nedense, t4 dönüşüm döneminde, dinamik sevk hala niye merak T4 den çalışmıyor nasıl hiç. T4'ten bir çalışma zamanı hatası atar, aynı kod doğrudan bir cs dosyasından iyi gelir.

+0

Önceden derlenmiş T4 kullanmayı denediniz mi? http://www.olegsych.com/2009/09/t4-preprocessed-text-templates/ –

+0

infact Doğru anladım, teşekkürler – amazedsaint

+0

Ve FYI Özel bir şablon sunucusu kullanıyorum, doğrudan VS'den t4 koşmuyor :) – amazedsaint

2

Varsayılan olarak, T4 motorunun numaralı telefonu 4.0 kullanabileceğine inanıyorum, ancak, başvuru yaptığınız herhangi bir DLL dosyasının hatasız olduğundan emin olabilirsiniz.