Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

180
Views
Soporte de MSBuild para plantillas T4 en Visual Studio 2017 RTM

En Visual Studio 2015, uso el paquete NuGet Unofficial.Microsoft.VisualStudio.TextTemplating.14.0.0 que me permite transformar plantillas T4 directamente desde MSBuild, cada vez que se crea un proyecto.

Sin embargo, en Visual Studio 2017 RTM, esto interrumpe la compilación con los siguientes mensajes:

An Exception was thrown while running the transformation code. The process cannot continue. The following Exception was thrown: System.IO.FileNotFoundException: Could not load file or assembly 'Microsoft.CodeAnalysis, Version=1.3.1.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' or one of its dependencies. The system cannot find the file specified. File name: 'Microsoft.CodeAnalysis, Version=1.3.1.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35'

Esto lo plantea el archivo Unofficial.Microsoft.VisualStudio.TextTemplating.targets(396,5) que se encuentra en este paquete.

Supongo que el error proviene de intentar usar estos objetivos de una compilación VS 2017 debido a entornos que no coinciden, pero no sé cómo rastrear el problema exacto. Todavía no hay un paquete actualizado para v15 que pueda ver.

¿Cómo puedo hacer transformaciones T4 desde MSBuild que funcionen para VS 2017? ¿Habrá un nuevo paquete de NuGet para usar en algún momento o ya no será compatible?

about 4 years ago · Santiago Trujillo
3 answers
Answer question

0

Encontré la solución correcta.

Resulta que el SDK de T4 ahora se incluye como parte de Visual Studio 2017 (y no como parte del SDK de modelado por separado como lo ha sido en el pasado), PERO debe instalarlo a través del conjunto de herramientas de Visual Studio extension development en el instalador de VS2017 (Característica de transformación de plantilla de texto).

Una vez que esté instalado, puede usar MSBuild para transformar plantillas importando los objetivos relevantes en el proyecto de MSBuild:

 <PropertyGroup> <VisualStudioVersion Condition="'$(VisualStudioVersion)' == ''">15.0</VisualStudioVersion> <VSToolsPath Condition="'$(VSToolsPath)' == ''">$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)</VSToolsPath> <TransformOnBuild>True</TransformOnBuild> <TransformOutOfDateOnly>false</TransformOutOfDateOnly> </PropertyGroup> <!-- add AFTER import for $(MSBuildToolsPath)\Microsoft.CSharp.targets --> <Import Project="$(VSToolsPath)\TextTemplating\Microsoft.TextTemplating.targets" />

Esto resolvió mi problema y también elimina la necesidad del paquete NuGet no oficial por separado.

about 4 years ago · Santiago Trujillo Report

0

Tuve un problema similar. Mi T4 no generaría en la compilación, pero lo haría al guardar. Esto fue extraño ya que no recibí un error, pero al leer la respuesta de @Sam, pensé que algo andaba mal con mi instalación de VS. Y yo tenía razón. VS 2017 15.9.4 se instala en su propio directorio de instalación, pero no copia las herramientas en la carpeta VSToolsPath. En cambio, simplemente los deja donde están. Entonces, para mí, la solución correcta fue usar este <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" /> <Import Project="$(VsInstallRoot)\MSBuild\Microsoft\VisualStudio\v15.0\TextTemplating\Microsoft.TextTemplating.targets" />

about 4 years ago · Santiago Trujillo Report

0

T4Executer hace esto, y puede establecer qué plantillas ejecutar antes o después de la compilación, o establecer qué plantillas no deben ejecutarse en la compilación. VS2017-19

about 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!