1

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

<#@ 程序集名称="$(SolutionDir)\MYNAMESPACE.MYLIBRARY\bin\debug\MYLIBRARY.dll"> #>

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

最初我有以下行,

<#@ 程序集名称="$(SolutionDir)\MYNAMESPACE.MYLIBRARY\$(OutDir)\MYLIBRARY.dll"

>

但是拥有(OutDir)不起作用,因为我的Web 项目输出路径是 bin\ 文件夹,并且它一直在bin 文件夹中查找 MYLIBRARY.DLL,而不是bin\debug 文件夹。我收到以下错误:

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

我无法将我的 Web 项目输出路径属性更新为 bin\debug 而不是 bin\,因为这样 Web 项目就不会按照文章中的说明运行。

问.. 我怎样才能摆脱 t4 模板文件中硬编码的 bin\debug 路径?

4

2 回答 2

2

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

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

于 2015-02-18T19:36:06.217 回答
1

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

<#@ 程序集名称="$(SolutionDir)\MyNameSpace.MyLibrary\bin\$(ConfigurationName)\MyLibrary.dll"

>

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

于 2013-01-12T00:38:45.040 回答