2014-06-10 5 views
6

Ich verwende TypeLITE mit verschiedenen Projekten und einer einfachen Website. Ich möchte TypeLITE verwenden, um TypeScript-Definitionen aus meinen C# -Klassen zu generieren, aber ich darf die TypeLITE-DLLs nicht zu jedem Projekt hinzufügen.TypeLITE mit mehreren Projekten

dies meine Projektstruktur sein lassen:

Lösung
|
|
----- WebSite (mit NuGet-Installation von TypeLITE)
|
|
----- FirstProject
|
|
----- SecondProject
|
|
----- ThirdProject

I TypeLITE über NuGet-Konsole und der C# -Klassen befinden sich in "Ersten", "SecondProject" und "ThirdProject" installiert.

Problem: Ich muss die NuGet-Installation für alle anderen Projekte verwenden.

Ist das möglich?

Antwort

7

Wenn Sie Definitionen von Klassen aus der FirstProject in Ihrem WebSite verwenden möchten, können Sie einfach Bezug auf die FirstProject an der Innenseite Ihrer TypeLite.tt Datei WebSite

<#@ assembly name="$(TargetDir)FirstProject.dll" #> 

hinzufügen und Klassen aus dem FirstProject zur Verfügung stehen werden, um der TypLITE.

(wenn FirstProject.dll nicht in den Papierkorb-Ordner Ihres WebSite befindet, haben Sie statt $(TargetDir) entsprechende Verzeichnis verwenden)

+0

danken Ihnen - Ich werde das überprüfen! – thardes2

+0

Ich habe das versucht, aber es funktioniert nicht. Wenn ich das verstanden habe, muss ich den Eintrag "[TsClass]" zu jeder Klasse hinzufügen, die ich mit den TypeLITE Scripts verwenden möchte. Der [TsClass] -Eintrag ist jedoch ohne den Verweis von TypeLite.dll nicht gültig. – thardes2

+1

Das Attribut 'TsClass' ist nur für die automatische Erkennung von Klassen durch die' ForLoadedAsemblies'-Methode erforderlich. Anstatt die 'ForLoadedAsemblies' Methode zu verwenden, können Sie dem Modell manuell Klassen hinzufügen -' TypeScript.Definitions(). Für () .Für () ' –