gpt4 book ai didi

c# - 构建期间未转换的 T4 模板

转载 作者:行者123 更新时间:2023-12-04 15:30:08 30 4
gpt4 key购买 nike

我做了什么
我试图将我的 T4 模板编译成一个 c# 文件。
我从 尝试过的Microsoft: Invoke text transformation in the build process
通过添加我的 .csproj 文件:

  <Import Project="TextTemplating\Microsoft.TextTemplating.targets" />
<PropertyGroup>
<TransformOnBuild>true</TransformOnBuild>
<OverwriteReadOnlyOutputFiles>true</OverwriteReadOnlyOutputFiles>
<TransformOutOfDateOnly>false</TransformOutOfDateOnly>
</PropertyGroup>
<ItemGroup>
<T4ParameterValues Include="ProjectDir">
<Value>$(ProjectDir)</Value>
<Visible>false</Visible>
</T4ParameterValues>
</ItemGroup>
TextTemplating是一个包含来自我的编辑器的 TextTemplating 文件的目录,位于:
C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\msbuild\Microsoft\VisualStudio\v16.0\TextTemplating
模板
基本模板( 名为 ModelTemplate.tt ):
<#@ template language="C#" #>
<#@ parameter name="ClassName" type="System.String"#>
<#@ parameter name="Namespace" type="System.String"#>

namespace <#= Namespace #>
{
public class <#= ClassName #>
{

}
}
最后是用于测试 的模板模型模板.tt (命名为 ModelTemplateTest.tt):
<#@ template debug="false" language="C#" #>
<#@ output extension=".cs" #>
<#
_ClassNameField = "Model";
_NamespaceField = "MyNamespace";
#>
<#@ include file="$(ProjectDir)\Templates\ModelTemplate.tt"#>
构建的输出
A custom tool 'TextTemplatingFilePreprocessor' is associated with file 'Templates\ModelTemplate.tt', but the output of the custom tool was not found in the project.  You may try re-running the custom tool by right-clicking on the file in the Solution Explorer and choosing Run Custom Tool.       
但是 ModelTemplateTest.tt 被编译成:
namespace MyNamespace 
{
public class Model
{

}
}
我如何调用 TextTemplatingFilePreprocessor在我的构建中?

最佳答案

T4Executer可能是一个解决方案,它是一个 VS 扩展,允许您在项目构建时触发特定 T4 文件的执行。

关于c# - 构建期间未转换的 T4 模板,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61390507/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com