2009-10-07 6 views
5

मुझे अपनी टीटी फाइलों को प्रस्तुत करने के लिए सी # 4.0 का उपयोग करने के लिए मेरा टी 4 निर्दिष्ट करने की आवश्यकता है? मैंवीएस -2010 में सी # 4.0 का उपयोग करने के लिए मैं टी 4 (टेक्स्ट टेम्पलेट्स) कैसे निर्दिष्ट कर सकता हूं?

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

उपयोग करने की कोशिश लेकिन मैं इन त्रुटियों

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 

भी हो रही है जब मैं एक गतिशील चर का उपयोग इस

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

की तरह, कृपया है कि मैं TextTemplatingFileGenerator उपयोग कर रहा हूँ ध्यान दें और नहीं प्री-प्रोसेसर टेम्पलेट्स

+0

क्या आपने वीएस -2010 के साथ प्रदान किए गए टेम्पलेट्स को देखने का प्रयास किया है? – Lazarus

+0

हाँ, यह तब तक चलता है जब तक आप गतिशील चर का उपयोग नहीं करते – amazedsaint

उत्तर

4

पाया कि आपको सही असेंबली भी निर्दिष्ट करनी चाहिए।

यह जोड़ना सुनिश्चित करेगा कि आप सी # 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" #> 

कैसे कभी, किसी कारण से, टी -4 परिवर्तन के समय के दौरान, गतिशील भेजने अभी भी टी -4 से काम नहीं कर रहा है, सोच क्यों। टी 4 से यह रनटाइम त्रुटि फेंकता है, वही कोड सीएस फ़ाइल से सीधे अच्छा होता है।

+0

क्या आपने प्रीकंपील्ड टी 4 का उपयोग करने का प्रयास किया है? http://www.olegsych.com/2009/09/t4-preprocessed-text-templates/ –

+0

वास्तव में मुझे यह सही मिला, धन्यवाद – amazedsaint

+0

और एफवाईआई मैं कस्टम टेम्पलेट होस्ट का उपयोग कर रहा हूं, सीधे वीएस से टी 4 नहीं चला रहा हूं :) – amazedsaint

2

मेरा मानना ​​है कि डिफ़ॉल्ट रूप से टी 4 इंजन केवल 4.0 का उपयोग कर सकता है, हालांकि मैं सुनिश्चित करता हूं कि आपके द्वारा संदर्भित किसी भी डीएलएल आपकी त्रुटि के लिए सही हैं।