5
我在创建可用于从Visual Studio和MSBUild生成相对简单的C#代码的T4模板时遇到困难。该模板引用驻留在项目输出路径中的DLL。除此之外,它是一个相当简单的模板,它通过一组域对象进行循环,并为它们中的每一个输出测试方法。T4:在Visual Studio和MSBuild中都使用属性
MSDN suggests在两个主机使用性能以下方法:
<!-- Define a project property, myLibFolder: -->
<PropertyGroup>
<myLibFolder>$(MSBuildProjectDirectory)\..\libs</myLibFolder>
</PropertyGroup>
<!-- Tell the MSBuild T4 task to make the property available: -->
<ItemGroup>
<T4ParameterValues Include="myLibFolder">
<Value>$(myLibFolder)</Value>
</T4ParameterValues>
</ItemGroup>
不幸的是,这是行不通的。当通过的MSBuild执行,我得到以下错误:
Compiling transformation: Metadata file '$(myLibFolder)Cmc.SpeedWays.Core.Testing.dll' could not be found
有没有人设法解决这个问题,或者至少找到一个可接受的解决方法吗?我们使用VS2012和MSBUild 4.0。