我正在尝试使用VS2012在项目每次构建时生成代码。我的解决方案中有3个项目:
1. project 1包含一些类 2. project 2具有通用模板 3. project 3具有读取JSON文件并调用project 2中的通用模板来生成其文件的模板。
当我点击“Build / Transform All T4 Templates”时,没有问题,生成顺利进行。但是,我正在尝试配置我的构建以自动包括这一步骤的每次构建。我将以下代码添加到了我的csproj中:
我在电脑上找到了路径"\Microsoft\VisualStudio\v11.0\TextTemplating\Microsoft.TextTemplating.targets"并已经设置好了。这个例子是我从这里拿的:get-visual-studio-to-run-a-t4-template-on-every-build。
问题出在这一行代码上: <#@ include file="$(SolutionDir)\xxx\yyy\zzz\mytemplate.tt">
我收到了以下错误信息: Failed to resolve include text for file : D:\Projects\pppp\qqq\eeee\$(SolutionDir)\xxx\yyy\zzz\mytemplate.tt
因为当手动生成模板时,它可以正常工作(Build/Transform All T4 Templates),所以我想知道生成它的问题可能是什么。你有任何想法吗?
1. project 1包含一些类 2. project 2具有通用模板 3. project 3具有读取JSON文件并调用project 2中的通用模板来生成其文件的模板。
当我点击“Build / Transform All T4 Templates”时,没有问题,生成顺利进行。但是,我正在尝试配置我的构建以自动包括这一步骤的每次构建。我将以下代码添加到了我的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。
问题出在这一行代码上: <#@ include file="$(SolutionDir)\xxx\yyy\zzz\mytemplate.tt">
我收到了以下错误信息: Failed to resolve include text for file : D:\Projects\pppp\qqq\eeee\$(SolutionDir)\xxx\yyy\zzz\mytemplate.tt
因为当手动生成模板时,它可以正常工作(Build/Transform All T4 Templates),所以我想知道生成它的问题可能是什么。你有任何想法吗?
Host.ResolvePath
方法。 - Sergey Rybalkin