网站项目中具有相对路径的T4汇编指令

本文关键字:T4 汇编 指令 路径 相对 项目 网站 | 更新日期: 2023-09-27 18:24:51

我在Visual Studio中有一个网站项目,我正试图引用该网站bin目录中的一些程序集。

到目前为止,根路径是唯一有效的路径:

<#@ Assembly Name="C:'Code'Web Solution'Website'bin'My.dll" />

其他人提到使用msbuild变量,但这对我不起作用:

<#@ Assembly Name="$(SolutionDir)Website'bin'My.dll" />

我很确定相对路径是不起作用的(我的tt文件在App_Code的子文件夹中):

<#@ Assembly Name="..'..'bin'My.dll" />

在不使用根路径的情况下,有没有任何方法可以在网站项目的背景下实现这一点?

网站项目中具有相对路径的T4汇编指令

GAC或绝对路径是T4模板中程序集引用所必需的。

但是,您可以使用已知路径的相对路径:

例如:

$(SolutionDir)'..'..'packages'Pluralizer.0.3.0.1'lib'net40'Pluralize.dll

运行T4时是否存在dll?

我使用MVC 4应用程序模板创建MvcApplication1。

创建App_Code目录并创建tt.

<#@assembly name="$(ProjectDir)''bin''MvcApplication1.dll"#>

构建项目并成功运行以传递信息

但是清理构建并运行它会失败。

因为,clean会删除生成输出dll,指定路径上不存在dll。

我认为您可以使用envDTE找到它(这里的示例用于导航项目以找到bin目录。

在定义相对路径时尝试使用斜杠而不是反斜杠:

<#@ Assembly Name="../../bin/My.dll" />