我正在尝试使用VS2012在我的项目的每个版本上生成代码。
我的解决方案中有3个项目:
当我点击构建/转换所有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 \ TextTemplating \ Microsoft.TextTemplating.targets ”。 我从中得到的例子是:get-visual-studio-to-run-a-t4-template-on-every-build
问题来自我使用的这条线: &lt;#@ include file =“$(SolutionDir)\ xxx \ yyy \ zzz \ mytemplate.tt”&gt;
我收到错误:
无法解析文件的包含文字: d:\项目\ PPPP \ QQQ \ EEEE \ $(SolutionDir)\ XXX \ YYY \ ZZZ \ mytemplate.tt
由于模板在“手动”(构建/转换所有T4模板)生成时运行良好,我想知道在构建时生成它可能会出现什么问题。
有什么想法吗?
答案 0 :(得分:2)
问题是,当您在构建过程中运行模板时,它正在不同的主机下执行,并且$(SolutionDir)宏不存在。尝试使用相对路径,例如
<#@ include file="..\xxx\yyy\zzz\mytemplate.tt">