是否可以使Visual Studio在构建时仅构建一组特定的T4模板?
当前,我使用here提供的解决方案在构建时使Visual Studio转换我的T4模板文件的全部。但是,我有一个T4模板,在构建期间进行转换时会运行到this issue中。因此,我要转换所有模板除了之外的特定模板。
更具体地说,我的.csproj
中包含以下代码:
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<TransformOnBuild>true</TransformOnBuild>
<TransformOutOfDateOnly>false</TransformOutOfDateOnly>
<OverwriteReadOnlyOutputFiles>true</OverwriteReadOnlyOutputFiles>
</PropertyGroup>
哪个“可以”以我想要的方式重建我的大部分T4模板。
但是,我的.csproj
中包含一个T4模板,该模板使用Host
变量,从而在构建期间导致转换失败(请参见here )。
除了模板,所有模板都必须在构建时进行转换,所以有什么办法可以实现这种行为?
注意:这种<PropertyGroup>
类型在多个解决方案中的多个项目中使用,因此,为了使整个项目保持一致,我希望继续使用它进行转换(如果在一切可能。
答案 0 :(得分:1)
为您不想转换的模板的元数据项添加条件,如下所示:
<Content Include="TextTemplate2.tt" >
<Generator Condition="$(BuildingInsideVisualStudio)=='true'">TextTemplatingFileGenerator</Generator>
<LastGenOutput>TextTemplate2.txt</LastGenOutput>
</Content>
这将阻止 Microsoft.TextTemplating.targets 将文件识别为需要转换的文件,除非在Visual Studio中进行构建。