كيفية الحصول على ملفات T4 لبناء في الاستوديو المرئي؟

StackOverflow https://stackoverflow.com/questions/405560

  •  03-07-2019
  •  | 
  •  

سؤال

وعندما أقوم ببناء بلدي ج # الحل سيكون الملفات .tt لا خلق مخرجات ملف .cs. ولكن إذا كنت انقر على الحق في الملفات .tt في وقت واحد في حل اكسبلورر واختر "أداة مخصصة تشغيل" و.cs يتم إنشاء، وبالتالي فإن وضع بناء الأداة هو الصحيح. ماذا أفعل للحصول على بناء الحل الشامل لإجبار أداة مخصصة لتشغيل على الملفات .tt؟

هل كانت مفيدة؟

المحلول

وبول، يمكنك أيضا إنشاء التعليمات البرمجية في وقت الإنشاء مع TextTransform.exe التون ستونمان ل MSBuild مهمة . فقط نأخذ في الاعتبار أن سلوك توجيهات في البناء، مثل التجمع تشمل يختلف عند تشغيل T4 في Visual Studio مقابل المضيف سطر الأوامر.

نصائح أخرى

وردا على سؤالي الخاصة، التي من المفترض أن تكون ولدت في وقت التصميم وفقا لهذه المناقشة:

https://web.archive.org/web/20081227142303/http://www.olegsych.com/2008/02/t4-template-directive/

وفي Visual Studio 2013، وكنت قادرا على الحصول على الملفات .tt لتجديد أهدافهم فقط عن طريق إضافة هذه الأسطر إلى ملف .csproj:

<PropertyGroup>
  <!-- Get the Visual Studio version – defaults to 10: -->
  <VisualStudioVersion Condition="'$(VisualStudioVersion)' == ''">10.0</VisualStudioVersion>
  <!-- Keep the next element all on one line: -->
  <VSToolsPath Condition="'$(VSToolsPath)' == ''">$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)</VSToolsPath>
</PropertyGroup>
<!-- To enable build tasks on your development computer, install Modeling SDK for Visual Studio. https://www.microsoft.com/en-us/download/details.aspx?id=40754 -->
<Import Project="$(VSToolsPath)\TextTemplating\Microsoft.TextTemplating.targets" />
<!-- Run the Transform task at the start of every build -->
<PropertyGroup>
  <TransformOnBuild>true</TransformOnBuild>
</PropertyGroup>
<!-- Overwrite files that are read-only, for example because they are not checked out -->
<PropertyGroup>
  <OverwriteReadOnlyOutputFiles>true</OverwriteReadOnlyOutputFiles>
</PropertyGroup>
<!-- Transform every template every time -->
<PropertyGroup>
  <TransformOutOfDateOnly>false</TransformOutOfDateOnly>
</PropertyGroup>

ولكن، لهذا العمل، عليك أن قمت بتثبيت النمذجة SDK لبرنامج Visual Studio . لقد وجدت كل هذه المعلومات، جنبا إلى جنب مع وصفا أكثر اكتمالا من الخيارات المتاحة، في هذه الصفحة: <لأ href = "https://msdn.microsoft.com/en-us/library/ee847423.aspx" يختلط = " نوفولو "> كود الجيل في بناء عملية .

وفي Visual Studio 2017 (الإصدارات القادمة ربما أيضا)، يجب أن تضيف هذا في حالة ما قبل البناء:

"$(DevEnvDir)TextTransform.exe" -out "$(ProjectDir)YourTemplate.cs" "$(ProjectDir)YourTemplate.tt"

وp.s. الحل الوحيد الذي عملت بالنسبة لي.

وp.s.s. تغيير مسار القالب الخاص بك إذا كان موجود لا في دليل المشروع الجذر.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top