如何获得T4模板以在每次构建时生成其输出?就像现在一样,它只在我对模板进行更改时才重新生成它.
我发现了类似的其他问题:
如何在Visual Studio中构建t4文件?(答案不够详细[虽然仍然很复杂]甚至没有完全意义)
必须有一个更简单的方法来做到这一点!
我有一个T4模板,可以根据标志输出优化内容或标准内容.目前我正在根据我的需要手动更改旗帜.
我喜欢做的是根据Visual Studio中的解决方案配置来设置标志.如果设置为在调试模式下构建,我将输出标准内容.如果设置为在发布模式下构建,我会改为优化内容.我发现另一个看起来很有希望的T4问题:T4文本模板 - 是否有可能从主机获取编译符号?
但是,在我的情况下,我想做类似以下的事情:
<#@ template language="C#" hostspecific="True"
compilerOptions="/d:$(ConfigurationName)" #>
Run Code Online (Sandbox Code Playgroud)
因为我可以在程序集指令中使用$(SolutionDir):
<#@ assembly name="$(SolutionDir)\myreference.dll" #>
Run Code Online (Sandbox Code Playgroud)
我认为/ d:$(ConfigurationName)会让我到达我需要去的地方,然后我可以执行以下操作来设置我的标志:
<#
#if Debug
optimize = false;
#else
optimize = true;
#endif
#>
Run Code Online (Sandbox Code Playgroud)
唉,这似乎不起作用.我也尝试过使用:
Host.ResolveParameterValue("-", "-", "ConfigurationName");
Run Code Online (Sandbox Code Playgroud)
也无济于事.有任何想法吗?