2013-07-25 37 views
7

我在Visual Studio中有一個網站項目,我試圖從站點的bin目錄中引用一些程序集。在網站項目中使用相對路徑的T4彙編指令?

到目前爲止,紮根路徑是唯一可行的:

<#@ 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" /> 

如果不使用根源路徑,是否有任何方法可以在網站項目的上下文中進行此項工作?

回答

0

我定義相對路徑時想你可以使用envDTE(Example here導航項目尋找的bin目錄中找到它

+0

這是爲組裝基準,而不是在代碼使用。 –

0

使用try斜槓,而不是反斜槓:

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

我會給你一個鏡頭並報告回去...... –

+0

這沒有奏效。 –

+0

@JohnBubriski這很奇怪,因爲我們正在使用帶反斜槓的相對路徑並且它正在工作。也許,在Assembly節點中它不是以這種方式工作的。 – daryal

1

是DLL存在上運行T4?

創建MvcApplication1與MVC 4應用程序模板。

創建App_Code目錄並創建tt。

<#@集名稱= 「$(PROJECTDIR)\ BIN \ MvcApplication1.dll」 #>

生成項目並運行它繼承trasnform

,但乾淨的構建和運行它會導致失敗。

因爲,乾淨刪除生成輸出的DLL,DLL不存在指定的路徑。

+0

嗯,這是一個網站項目...所以這個特殊的DLL總是在垃圾箱裏,永遠不會被清理乾淨。 –

+0

更具體地說,該項目是一個「網站項目」,所以我認爲這就是爲什麼項目/解決方案目錄的這些宏/變量不起作用的原因。 –

+0

哦對不起,我現在正在用網站項目測試。但我無法找到bin上的dll。 repro步驟創建網站項目,添加Bin目錄和App_Code目錄,在App_Code上創建Class1.cs, – kazuk

5

T4模板中的裝配參考需要GAC或絕對路徑。

但是可以使用從公知的路徑相對路徑:

例如:

$(SolutionDir)\..\..\packages\Pluralizer.0.3.0.1\lib\net40\Pluralize.dll 
相關問題