如何让 Visual Studio 在构建时转换特定的 T4 模板?

How to get Visual Studio to transform specific T4 Templates on build?

是否有可能 Visual Studio 在构建时仅构建一组特定的 T4 模板?

目前,我在构建时使用提供的解决方案 here to make Visual Studio transform all of my T4 Template files upon build. However, I have a T4 Template that runs into this issue 进行转换。因此,我想转换所有模板 除了 这个特定的模板。

更具体地说,我的 .csproj 中有以下代码:

<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
    <TransformOnBuild>true</TransformOnBuild>
    <TransformOutOfDateOnly>false</TransformOutOfDateOnly>
    <OverwriteReadOnlyOutputFiles>true</OverwriteReadOnlyOutputFiles>
</PropertyGroup>

"works" 以我想要的方式重建我的大部分 T4 模板。

但是,我在 .csproj 中包含一个 T4 模板,它使用 Host 变量的方式导致构建期间转换失败(参见 here).

有必要在构建时转换除后者之外的所有模板,那么有什么方法可以实现此行为吗?

注意:这种类型的 <PropertyGroup> 在多个解决方案的多个项目中使用,所以为了保持整体相同,我宁愿继续使用它作为我的转换,如果可能的话。

按如下方式为您不想转换的模板的元数据项添加条件:

<Content Include="TextTemplate2.tt" >
  <Generator Condition="$(BuildingInsideVisualStudio)=='true'">TextTemplatingFileGenerator</Generator>
  <LastGenOutput>TextTemplate2.txt</LastGenOutput>
</Content>

这将阻止 Microsoft.TextTemplating.targets 将文件识别为需要转换的文件,除非在 Visual Studio.[=11= 中构建]