启用t4模板以查看相关文件夹

时间:2013-01-11 23:31:25

标签: c# asp.net t4

在我的t4模板文件中,我有以下一行肯定会在构建模式中中断。

  

<#@ assembly   名称= “$(SolutionDir)\ MYNAMESPACE.MYLIBRARY \ BIN \调试\ MYLIBRARY.dll” > #>

为了从我的asp.net web项目运行这个模板,我必须在上面的路径中硬编码 bin \ debug

最初我有以下一行,

  

<#@ assembly   名称= “$(SolutionDir)\ MYNAMESPACE.MYLIBRARY \ $(OUTDIR)\ MYLIBRARY.dll”

     

>

但是(OutDir)无法正常工作,因为我的网络项目路径是bin \ folder 并且它一直在 bin文件夹中查找MYLIBRARY.DLL 而不是 bin \ debug文件夹。,我收到以下错误:

  

编译转换:元数据文件   找不到mynamespace.mylibrary \ bin \ mylibrary.dll'

我无法将我的Web项目输出路径属性更新为bin \ debug而不是bin \,因为那时web项目就不会像article中所解释的那样运行。

  

Q ..如何摆脱t4模板文件中的硬编码bin \ debug路径?

2 个答案:

答案 0 :(得分:2)

无论您的项目或构建配置如何,都可以使用ProjectDir和OutputPath变量来完成此任务。

<#@ assembly name="$(ProjectDir)$(OutputPath)MyLibrary.dll" #>

答案 1 :(得分:1)

我更新了t4模板文件中的第一行,如下所示:

  

&lt;#@ assembly   名称= “$(SolutionDir)\ MyNameSpace.MyLibrary \ BIN \ $(ConfigurationName)\ MyLibrary.dll”

     

&GT;

因为,t4模板仅在我在调试模式下开发软件时执行,并且我用它来生成类,所以甚至可以硬编码为bin \ debug。使用t4模板生成类后,将其签入并准备部署以构建计算机。