网站项目中有相对路径的T4装配指令?

时间:2013-07-25 14:33:56

标签: c# visual-studio-2010 t4

我在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" />

如果不使用root路径,有没有办法在网站项目的上下文中使用它?

4 个答案:

答案 0 :(得分:5)

T4模板中的装配参考需要GAC或绝对路径。

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

例如:

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

答案 1 :(得分:1)

在运行T4时是否存在?

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

创建App_Code目录并创建tt。

&lt;#@ assembly name =“$(ProjectDir)\ bin \ MvcApplication1.dll”#&gt;

构建项目并使其成功运行到trasnform

但清理构建并运行结果失败。

因为,clean删除了构建输出dll,dll不存在于指定路径上。

答案 2 :(得分:0)

我认为你可以使用envDTE(Example here找到它来导航项目以找到bin目录。

答案 3 :(得分:0)

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

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