2013-07-25 13 views
7

Ho un progetto di sito Web in Visual Studio e sto cercando di fare riferimento ad alcuni assembly dalla directory bin del sito.Direttiva di montaggio T4 con percorso relativo nel progetto del sito web?

Finora, il percorso radicata è l'unico che funziona:

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

Altre persone menzionati utilizzando le variabili MSBuild, ma questo non funziona per me:

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

mi e' m abbastanza sicuro percorsi relativi solo flat out non funzionano (il mio file TT è in una sottocartella in App_Code):

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

Senza utilizzare il percorso root, esiste un modo per farlo funzionare nel contesto di un progetto web?

risposta

0

penso che si può trovare con l'EnvDTE (Example here per navigare il progetto per trovare la directory bin

+0

Ciò è per un riferimento di montaggio, non per uso nel codice. –

0

Provare utilizzando barre invece di backslash nella definizione dei percorsi relativi:.

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

Darò uno scatto e riferirò ... –

+0

Questo non ha funzionato. –

+0

@JohnBubriski è strano dato che stiamo usando i relativi percorsi con backslash e funziona. Forse, all'interno di un nodo Assembly non funziona in questo modo. – daryal

1

è dll esiste a correre T4?

creo MvcApplication1 con il modello MVC 4 Applicazione.

creare directory App_Code e creare tt.

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

costruire il progetto ed eseguirlo riesce a trasnform

ma pulire l'accumulo ed eseguirlo risultati non .

perché, clean rimuove la DLL di output, dll non esistente sul percorso specificato.

+0

Bene, questo è un progetto di sito Web ... quindi questa particolare DLL è sempre nel cestino e non viene mai pulita. –

+0

Per essere più specifici, il progetto è un "progetto di sito web", quindi penso che sia per questo che quelle macro/variabili per la directory di progetto/soluzione non funzionano. –

+0

oh scusa, sto testando con il progetto del sito ora. ma non riesco a trovare la DLL su bin. punti Repro Creare un progetto sito Web, aggiungere la directory Bin e Directory App_Code, creare Class1.cs su App_Code, – kazuk

5

GAC o percorsi assoluti sono necessari per i riferimenti di assieme nei modelli T4.

Tuttavia è possibile utilizzare percorsi relativi da un percorso noto:

es:

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