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

4
有没有可能让Visual Studio仅在构建时生成特定的一组T4模板?
目前,我使用这里提供的解决方案,使Visual Studio在构建时转换所有的T4模板文件。然而,当它在构建时被转换时,我的一个T4模板会遇到这个问题。因此,我想要转换所有模板除了这个特定的模板。
更具体地说,我在我的.csproj中有以下代码:
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
    <TransformOnBuild>true</TransformOnBuild>
    <TransformOutOfDateOnly>false</TransformOutOfDateOnly>
    <OverwriteReadOnlyOutputFiles>true</OverwriteReadOnlyOutputFiles>
</PropertyGroup>

我有一个T4模板需要使用.csproj文件中的Host变量,但这会导致构建时转换失败(参见此处)。虽然我已经找到了一个“解决方案”,可以按照我想要的方式重建大多数T4模板。

但是,我需要在构建时转换除最后一个模板之外的所有模板。是否有办法实现这种行为呢?

注意:多个项目在多个解决方案中都使用此类型的<PropertyGroup>,因此为了保持一致性,如果可能的话,我希望继续使用此方法进行转换。

1个回答

1
在不想转换的模板的元数据项中添加一个条件,如下所示:
<Content Include="TextTemplate2.tt" >
  <Generator Condition="$(BuildingInsideVisualStudio)=='true'">TextTemplatingFileGenerator</Generator>
  <LastGenOutput>TextTemplate2.txt</LastGenOutput>
</Content>

这将阻止 Microsoft.TextTemplating.targets 将该文件识别为需要转换的文件,除非在 Visual Studio 内构建。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接