gpt4 book ai didi

c# - 如何在 Build 上运行 TextTemplatingFileGenerator (VS 2017)

转载 作者:太空狗 更新时间:2023-10-30 00:22:56 26 4
gpt4 key购买 nike

我发现之前有人问过这个问题,但我遇到的所有答案都特定于早期版本的 Visual Studio。似乎主要是 VS2015 及更早版本。

大多数答案的主要问题是它们依赖于 Microsoft.TextTemplating.targets 和/或 TextTransform.exe 的存在,它们以前是与早期版本的 Visual Studio 一起安装的,而 VS2017 不再安装相应的目录或文件;据我了解,这是由于架构在这方面的变化。

我曾尝试使用 Clarius.TransformOnBuild,它运行良好(一次),但随后由于我看到其他人遇到的一些访问被拒绝问题而开始抛出“TransformOnBuildTask”任务失败。

降级到较早版本的包解决了错误,但它也不再在构建时运行 TextTemplatingFileGenerator。这似乎不是一个非常可靠的方法。

没有像其他人建议的那样尝试 AutoT4,因为该方法需要简单并且不需要所有开发团队成员修改他们的环境。

其他解决方案建议将 TextTransform.exe 添加到 %PATH% 变量,这同样需要团队对其环境执行修改。更不用说我因为第一点而没有 TextTransform.exe,而且不能保证团队中的其他开发人员也有。大家都在跑VS2017

我只需要一种非常简单的方法来在任何构建期间执行我项目中的所有 .tt 文件,而无需整个开发团队为此工作制作单独的系统模块。

如果其他人都有在 VS2017 下运行的类似要求,我会对解决方案感兴趣。

最佳答案

How to run the TextTemplatingFileGenerator on Build (VS 2017)

如您所知,如果您想在构建期间执行项目中的所有 .tt 文件,则必须使用 Microsoft.TextTemplating.targetsTextTransform.exeAutoT4 或任何其他扩展。所有这些方法都需要我们的开发团队或多或少地配置他们的环境。

为了减少开发团队成员的个人配置,我们通常使用Microsoft.TextTemplating.targets。由于 T4 SDK 现在作为 Visual Studio 2017 的一部分包含在内(而不是像过去那样作为单独的建模 SDK 的一部分),因此我们必须通过 Visual Studio 扩展开发 安装它VS2017 安装程序中的工具集(文本模板转换功能):

enter image description here

安装此工作负载后,您可以通过将相关目标导入 MSBuild 项目来使用 MSBuild 转换模板:

  <PropertyGroup>
<VisualStudioVersion Condition="'$(VisualStudioVersion)' == ''">10.0</VisualStudioVersion>
<VSToolsPath Condition="'$(VSToolsPath)' == ''">$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)</VSToolsPath>
<TransformOnBuild>true</TransformOnBuild>
<OverwriteReadOnlyOutputFiles>true</OverwriteReadOnlyOutputFiles>
<TransformOutOfDateOnly>false</TransformOutOfDateOnly>
</PropertyGroup>

<!-- This is the important line: -->
<Import Project="$(VSToolsPath)\TextTemplating\Microsoft.TextTemplating.targets" />

参见 Code Generation in a Build Process了解详情。

希望这对您有所帮助。

关于c# - 如何在 Build 上运行 TextTemplatingFileGenerator (VS 2017),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48568884/

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