2013-12-18 10 views
8

Szenario:SlowCheetah: Transformierte Dateien aus dem Klassenbibliotheksprojekt wurden nicht in die referenzierten Projekte kopiert

Ich habe ein Klassenbibliotheksprojekt mit benutzerdefinierten .config-Dateien. Die Build-Aktion für diese Konfigurationsdateien wird auf "Inhalt" und "Immer kopieren" gesetzt. Auf dieses Bibliotheksprojekt wird dann in mindestens 4 bis 5 Konsolenanwendungen innerhalb derselben Lösung verwiesen. Wenn die Lösung erstellt wird, werden die Assembly der Klassenbibliothek und die benutzerdefinierten Konfigurationsdateien in den Ordner der referenzierten Projekte kopiert.

Was ich bin versucht:

Verwenden SlowCheetah benutzerdefinierte Config-Dateien zu verwandeln

Problem:

Obwohl SlowCheetah transformiert die Konfigurationsdateien innerhalb der Klassenbibliothek Projekt nicht die transformierte kopiert Datei in die referenzierten Projekte einfügen. d. h. es kopiert immer die Quell-/Originaldatei.

Gefunden paar andere Threads, aber keine von ihnen waren Lösungen basierend auf SlowCheetah, Vorschläge wären hilfreich. Beachten Sie, dass ich Install Shield Limited Edition verwende, daher muss die Lösung für .msi/setup-Dateien funktionieren. Außerdem möchte ich keine Dateien verknüpfen und die Transformation auf die verknüpften Dateien anwenden, da ich dann die gleiche Transformation für alle referenzierten Projekte durchführen müsste.

Dank

+1

ich versucht habe, einen Beitrag Build-Schritt mit einem xcopy in die Konsole Projekt setzen (s), aber es immer noch die nicht-transformierte Version kopiert . Das einzige, was ich zu diesem Zeitpunkt denken kann, ist, dass es sich um ein Timing-Problem handelt. Vielleicht passiert die Transformation post-post-build ?! –

+0

Das gleiche Problem hier, für mich ist es die NLog.config-Datei, die ich hinzugefügt habe, transformiert auch. Gleiches Problem, die Datei wird transformiert, aber nicht kopiert – workabyte

Antwort

0

Gegeben ClassLibararyA verweist ClassLibraryB:

  • configs aus beiden Klassenbibliotheken sind App.config
  • konfigurieren Transformationen sowohl für App.configs mit SlowCheetah Stellen Sie sicher, genannt (auch wenn Sie nur Pflege one)
  • Bauen

im out put Ordner für ClassLibraryA, finden Sie ClassLibraryB.dll.config (die transformierte App.config von ClassLibraryB).

+2

Das OP erwähnt "benutzerdefinierte Konfigurationsdateien", die ich denke, sind nicht app.config-Dateien.Ich habe eine SlowCheetah Transformation auf beiden app.configs und ich stimme zu, dass die Konfiguration von ClassLibraryB transformiert wird, bevor sie in den Klassenordner von ClassLibraryA kopiert wird. Es gibt jedoch andere .config-Dateien in ClassLibraryB, die SlowCheetah-Transformationen aufweisen. Ihre "Copy to Output Directory" Eigenschaften sind auf "Immer kopieren" oder "Wenn neuere kopieren" festgelegt. Die Transformation wird angewendet, bevor sie in den Klassenordner von ClassLibraryB wechselt, aber nicht auf die Version angewendet, die in den Ordner von ClassLibraryA gelangt. Das ist das Problem hier. –

0

Ich weiß, das ist keine Lösung, aber das ist, was ich in der Frage gefunden habe, da ich das gleiche Problem habe. Dies hier hinzufügen, da es viel zu viel ist, um zu einem Kommentar hinzugefügt zu werden und hoffentlich wird es schließlich die Antwort sein, wenn sie den Fehler schließen.

Ich weiß, dass sich langsamer Gepard im Wartungsmodus befindet, aber sie beheben immer noch Fehler und es sieht so aus, als würde Microsoft das Projekt übernehmen, also hoffentlich bekommen sie das behoben.

Gefunden diesen Fall hier, wo sie zugeben, es ist ein Bug, aber dann scheint sie ein anderes Problem zu beheben.

https://github.com/sayedihashimi/slow-cheetah/issues/34

so öffnete ich einen neuen Bug-Report hier

https://github.com/sayedihashimi/slow-cheetah/issues/174

Verwandte Themen