为了账号安全,请及时绑定邮箱和手机立即绑定

让VisualStudio在每个构建上运行一个T4模板

让VisualStudio在每个构建上运行一个T4模板

让VisualStudio在每个构建上运行一个T4模板如何获得T4模板以在每次构建时生成其输出?就像现在一样,它只在我更改模板时才重新生成它。我发现了其他类似的问题:Visual Studio中的T4转换与生成顺序(未答复)如何在Visualstudio中生成T4文件?(答案不够详细(但仍然很复杂),甚至没有完全意义)必须有更简单的方法来做到这一点!
查看完整描述

3 回答

?
弑天下

TA贡献1818条经验 获得超8个赞

我用Joelfan的回答提出了这个问题。我更喜欢它,因为您不必记得每次向项目添加新的.tt文件时都要修改预构建事件。

  • 将TextTransform.exe添加到

    %PATH%

  • 创建了一个名为Transform_all.bat的批处理文件(见下文)
  • 创建预构建事件“

    transform_all ..\.."

变换所有蝙蝠

@echo off
SETLOCAL ENABLEDELAYEDEXPANSION

:: set the working dir (default to current dir)
set wdir=%cd%
if not (%1)==() set wdir=%1

:: set the file extension (default to vb)
set extension=vb
if not (%2)==() set extension=%2

echo executing transform_all from %wdir%
:: create a list of all the T4 templates in the working dir
dir %wdir%\*.tt /b /s > t4list.txt

echo the following T4 templates will be transformed:
type t4list.txt

:: transform all the templates
for /f %%d in (t4list.txt) do (
set file_name=%%d
set file_name=!file_name:~0,-3!.%extension%
echo:  \--^> !file_name!    
TextTransform.exe -out !file_name! %%d
)

echo transformation complete


查看完整回答
反对 回复 2019-07-04
?
翻阅古今

TA贡献1780条经验 获得超5个赞

我同意GarethJ-在VS 2010中,在每个构建上重新生成TT模板要容易得多。奥列格·赛奇的博客描述了如何做到这一点。简言之:

  1. 安装

    VisualStudioSDK

  2. 安装

    VisualStudio 2010建模和可视化SDK

  3. 在文本编辑器项目文件中打开并添加到文件末尾,但在此之前

    </Project>

就这样。打开你的项目。在每个构建中,所有*.tt模板都将被重新处理。


<!-- This line could already present in file. If it is so just skip it  -->

<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />

<!-- process *.tt templates on each build  -->

<PropertyGroup>

    <TransformOnBuild>true</TransformOnBuild>

</PropertyGroup>

<Import Project="$(MSBuildExtensionsPath)\Microsoft\VisualStudio\TextTemplating\v10.0\Microsoft.TextTemplating.targets" />


查看完整回答
反对 回复 2019-07-04
?
慕码人8056858

TA贡献1803条经验 获得超6个赞

有一个很棒的NuGet软件包就是这样做的:

PM> Install-Package Clarius.TransformOnBuild

有关该包的详细信息可以如下在这里发现的


查看完整回答
反对 回复 2019-07-04
  • 3 回答
  • 0 关注
  • 1274 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信