Ich versuche einen Prozess einzurichten, bei dem meine T4-Vorlagen auf dem Build-Server transformiert werden (Visual Studio ist dort nicht installiert).
Ich habe alle Online-Referenzen gelesen, konnte aber keine eindeutige Quelle finden, die zeigt, wie das geht.
Genauer gesagt, hier sind die 2 Probleme, denen ich begegnet bin:
C: \ TeamCity \ Buildagent \ work \ AppSettings.tt (0,0): Fehler CS0006: Transformation kompilieren: Metadatendatei 'Microsoft.VisualStudio.TextTemplating.Interfaces.10.0, Version = 10.0.0.0, Kultur = neutral, PublicKeyToken = b03f5f7f11d50a3a ' konnte nicht gefunden werden
Das Registrieren der DLL-Dateien mit gacutil behebt dieses Problem, obwohl ich diesen Schritt vermeiden möchte.
Diese Methode hilft beim Bestimmen eines vollständigen Pfads zur TXT-Datei, die von der Vorlage als Datenquelle verwendet wird. Ohne diese Datei kann diese Datei nicht auf dem Build-Server gefunden werden.
Jede Hilfe wird geschätzt, um das zu erreichen.
BEARBEITEN: Öffnen eines MS CONNECT-Problems: Ссылка
Referenzen, die ich überprüft habe:
Ich glaube, das Problem ist, dass Sie hostspezifische Funktionen wie ResolvePath verwenden.
Eine Möglichkeit, die ich versuchen würde, besteht darin, dafür zu sorgen, dass die Vorlagen nicht ResolvePath verwenden, sondern sich auf relative Pfade von einem bekannten Ort verlassen.
Dieser bekannte Ort könnte bekannt sein durch:
%Vor%Wenn Sie nicht die Idee haben, Dev-Setup-Umgebungsvariablen zu erzwingen, würde ich einen "intelligenten" Auflösungspfad erstellen, der die Umgebungsvariable verwendet, falls verfügbar, ansonsten auf Host.ResolvePath.
Hoffe, das hilft
Entfernen Sie die Microsoft TextTransform.exe und verwenden Sie die freie Version von MonoDevelop, die keine externen Abhängigkeiten enthält.
Siehe hier: T4 ohne Visual Studio?
Kopieren Sie das folgende Verzeichnis von Ihrem Entwicklungscomputer auf den Build-Server.
Quelle (Ihre Maschine):
%CommonProgramFiles(x86)%\Microsoft Shared\TextTemplating\<version>.0
Ziel (Build-Server):
%CommonProgramFiles(x86)%\Microsoft Shared\TextTemplating\<version>.0
Dabei ist <version>
die neueste Version.
Kopieren Sie alle Assemblys (.dll) von Ihrem Entwicklungscomputer auf den Build-Server.
Quelle (Ihre Maschine):
%WinDir%\Microsoft.NET\assembly\GAC_MSIL\Microsoft.VisualStudio.TextTemplating.*
Ziel (Build-Server):
%CommonProgramFiles(x86)%\Microsoft Shared\TextTemplating\<version>.0
Dabei steht *
für den Rest des Verzeichnisnamens.
Verwenden Sie Gacutil / i , um alle Kopien zu installieren Assemblys in GAC des Buildservers.
Tags und Links .net c# visual-studio-2010 t4 code-generation