当我在visual studio中运行它时,我能够让我的T4文件正常工作,但是在构建过程中自动执行它时会出错.
问题是,为了引用同一解决方案中的程序集而另一个项目,我添加了这一行:
<#@ assembly name="$(SolutionDir)\My.Core\bin\Debug\My.Core.dll" #>
为了在构建时运行单个T4模板,我使用以下命令创建了一个post build-event:
"%PROGRAMFILES(x86)%\Common Files\microsoft shared\TextTemplating\10.0\TextTransform.exe" $(ProjectDir)\Features\Admin\app\Abilities.tt
但由于此时主机不是IDE环境,因此它会抛出一个错误,因为它正在逐字地处理$(SolutionDir),因此无法找到My.Core.dll的程序集引用.
所以我的问题是,如何在T4模板中引用该程序集,以便它与我拥有的构建过程一起工作,理想情况下仍然可以右键单击并手动运行转换,但这并不重要.
我还应该注意,使用完整路径不是一个选项,因为有多个开发人员,源代码将存在于每个开发人员计算机上可能不同的目录中.