2013-07-25 15 views
7

Ich habe ein Website-Projekt in Visual Studio und ich versuche, einige Assemblys aus dem Verzeichnis bin der Site zu verweisen.T4-Baugruppenrichtlinie mit dem relativen Pfad im Website-Projekt?

Bisher war die verwurzelten Weg ist die einzige, die funktioniert:

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

Andere Leute erwähnt msbuild Variablen verwenden, aber das ist für mich nicht funktioniert:

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

und ich m ziemlich sicher, dass relative Pfade nur Vollgas nicht funktionieren (My tt Datei befindet sich in einem Unterordner in App_Code):

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

Gibt es keine Möglichkeit, den verwurzelten Pfad im Kontext eines Website-Projekts zu verwenden?

Antwort

0

Ich glaube, Sie es mit dem EnvDTE finden (Example here das Projekt zu navigieren, um die bin-Verzeichnis finden

+0

Dieser für eine Montagereferenz ist, nicht für die Verwendung in dem Code. –

0

Try Schrägstriche statt Schrägstriche zu verwenden, wenn relative Pfade definieren.

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

Ich gebe das eine Chance und berichte zurück ... –

+0

Das hat nicht funktioniert. –

+0

@JohnBubriski es ist seltsam, da wir die relativen Pfade mit Backslashes verwenden und es funktioniert. Vielleicht funktioniert es in einem Assembly-Knoten nicht so. – daryal

1

ist dll existieren T4 auf laufen?

erstelle ich MvcApplication1 mit MVC 4 Anwendungsvorlage.

erstellen Verzeichnis App_Code und erstelle tt.

< # @ Montage name = "$ (ProjectDir) \ bin \ MvcApplication1.dll" #>

das Projekt erstellen und führen Sie es

trasnform gelingen, aber die Build reinigen und führen Sie es scheitern Ergebnisse .

weil sauber entfernt Build-Ausgabe DLL, dll nicht auf angegebenen Pfad vorhanden.

+0

Nun, das ist ein Website-Projekt ... so ist diese bestimmte DLL immer im Papierkorb und wird nie gereinigt. –

+0

Um genauer zu sein, das Projekt ist ein "Website-Projekt", deshalb denke ich, dass diese Makros/Variablen für das Projekt/Lösung-Verzeichnis nicht funktionieren. –

+0

oh sorry, Ich teste jetzt mit Website-Projekt. aber ich kann die dll nicht auf bin finden. Repro-Schritte Erstellen Sie ein Website-Projekt, fügen Sie Bin-Verzeichnis und App_Code-Verzeichnis hinzu, erstellen Sie Class1.cs auf App_Code, – kazuk

5

GAC- oder absolute Pfade sind für Assemblyreferenzen in T4-Vorlagen erforderlich.

Sie können jedoch relative Pfade von einem bekannten Pfad verwenden:

zB:

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