我正在尝试使用 VS2012 在项目的每个构建上生成代码。
我的解决方案中有 3 个项目:
- 项目1有一些类
- 项目 2 有通用模板
- 项目 3 的模板读取 json 文件,然后调用项目 2 中的通用模板来生成其文件。
当我单击“构建/转换所有 T4 模板”时,没有问题,生成进展顺利。
但我正在尝试将我的构建配置为在每个构建中自动包含此步骤。
我已将此代码添加到我的 csproj 中:
<Import Project="$MsBuildToolsPath)\Microsoft.CSharp.Targets" />
<PropertyGroup>
<TransformOnBuild>true</TransformOnBuild>
<OverWriteReadOnlyOutputFiles>true</OverWriteReadOnlyOutputFiles>
</PropertyGroup>
<Import Project="$(MSBuildExtensionPath32)\Microsoft\VisualStudio\v11.0\TextTemplating\Microsoft.TextTemplating.targets"/>
我已经为自己制定了道路”\Microsoft\VisualStudio\v11.0\TextTemplated\Microsoft.TextTemplated.targets“从我在电脑上找到的内容来看。
我拿的例子是:在每个构建上运行 a-t4-template 的 Visual Studio https://stackoverflow.com/questions/1646580/get-visual-studio-to-run-a-t4-template-on-every-build
问题来自我正在使用的这一行:
我收到错误:
无法解析文件的包含文本:
D:\Projects\pppp\qqq\eeee\$(SolutionDir)\xxx\yyy\zzz\mytemplate.tt
由于模板在“手动”生成(构建/转换所有 T4 模板)时运行良好,我想知道在构建时生成它可能会出现什么问题。
任何想法?
问题是,当您在构建过程中运行模板时,它是在不同的主机下执行的,并且 $(SolutionDir) 宏不存在。尝试使用相对路径,例如
<#@ include file="..\xxx\yyy\zzz\mytemplate.tt">
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)