在我的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路径?
答案 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模板生成类后,将其签入并准备部署以构建计算机。