2010-12-30 16 views
1

Ich habe eine Baugruppe generiert von DSL, und ich muss einen Verweis darauf aus meinem Projekt machen.Konfig-abhängige Assembly-Referenz

Allerdings hätte ich gerne einen Verweis auf Debug-Assembly von Debug-Projekt-Konfiguration und Release Release.

Ist es möglich zu erreichen?

+3

Dies funktioniert automatisch, wenn beide Projekte in der gleichen Lösung sind. –

+0

Diese Assembly wird von einem externen Compiler aus DSL generiert. Vor dem Posten lesen. – user536232

+0

"Externer Compiler" ist etwas, das nur in Ihrer Antwort Kommentar erschien, so sehe ich nicht, dass John in seiner Antwort falsch war - gegeben, dass die VS SDK DSL-Tools gut mit VS integrieren und Sie könnten eine DSL-basierte haben Projekt und ein "normales" Projekt in der gleichen Lösung. Vielleicht müssen Sie mehr Details zu Ihrem DSL-Tool/Compiler zu Ihrer Frage hinzufügen. Wie soll Ihr Build-Prozess funktionieren, wenn der DSL-Build beispielsweise veraltet ist? –

Antwort

3

Okay, so was ich gefunden habe ... Assembly-Referenz kann manuell in der Projektdatei bearbeitet werden, setzen $ (Configuration) anstelle von "Debug"/"Release" Pfad Teil. Es funktioniert ohne Probleme.

0

Nun, fügen Sie Assembly-Generierung von DSL als Build-Ereignis - auf diese Weise können Sie die korrekte Version (Debug/Release) der Baugruppe generieren. Der Konfigurationsname ist als Makro [$(ConfigurationName)] verfügbar. Außerdem müssen Sie in einer solchen Befehlszeile intelligent sein, um die Baugruppengenerierung zu überspringen, wenn die bereits generierte und die DSL nicht geändert wurden. Dies bedeutet, dass Sie abhängig von der Konfiguration einen anderen Zwischenzielort haben müssen und von diesem Standort zu einem anderen Hauptstandort kopieren müssen (wenn Datei geändert wird). An diesem anderen Speicherort verweisen Sie auf die Assembly in Ihrem Projekt.

+0

In diesem Fall erstellt Build nach dem Umschalten der Konfiguration ein Projekt mit der falschen Version der generierten Assembly. Kann nicht sagen, dass ich diese Lösung sehr mag, aber es sollte funktionieren, wenn nichts besseres zur Verfügung steht. – user536232

+0

@ user536232, ich hatte vorgeschlagen, generierte Assembly im config-spezifischen Ordner zu erstellen (z. B. Obj \ Debug \ dsl.dll, Obj \ Release \ dsl.dll) und kopieren Sie es dann zu sagen bin Ordner von wo es referenziert wird. Das Umschalten der Konfiguration sollte also nicht von Bedeutung sein, da Sie die Assembly immer aus dem entsprechenden Konfigurationsordner kopieren werden. – VinayC

Verwandte Themen