Laden...

Add Reference, was tun, wenn man mehrere Build-Konfigurationen braucht?

Erstellt von Seikilos vor 13 Jahren Letzter Beitrag vor 13 Jahren 2.612 Views
S
Seikilos Themenstarter:in
753 Beiträge seit 2006
vor 13 Jahren
Add Reference, was tun, wenn man mehrere Build-Konfigurationen braucht?

Hallo,

ich habe hier eine Assembly, die im Release anders ist, als im Debug. Es existiert kein Projekt von der Assembly, ich habe nur die DLLs.
Wenn ich nun ein CSharp Projekt aufsetze, so kann ich ja mit Add Reference ne Lib auswählen. Das Problem ist, ich kann für Debug und Release nur eine auswählen.
Gibt es da einen Weg, die Assembly als Referenz buildabhängig zu haben?

Ich weiß, dass es geht, wenn man bei Add Reference ein Projekt in der gleichen SLN nimmt, dann wird im Debug Debug und im Release Release genommen, aber ich habe ja, wie gesagt, nur die dll.

Danke

Vs 2008

Life is a short

2.298 Beiträge seit 2010
vor 13 Jahren

Wäre der richtige Weg nicht die Release Version zu nutzen für Debug und Release? Ich meine, dort wird doch hoffentlich der aktuelle Stand drin sein.

Du musst ja davon ausgehen, dass du bei untercshiedlichen Assemblies auch unterschiedliche Verarbeitung haben könntest. - Somit wäre das ganze nicht wirklich testbar, da ja die Debug Version eben anders als die Release version ist.

Wissen ist nicht alles. Man muss es auch anwenden können.

PS Fritz!Box API - TR-064 Schnittstelle | PS EventLogManager |

S
Seikilos Themenstarter:in
753 Beiträge seit 2006
vor 13 Jahren

Dessen bin ich mir voll bewusst und die Assemblies sind mit voller Absicht unterschiedlich.
Ich mein, in C++ kann ich für verschiedene Builds verschiedene Libs anziehen, warum wurde das da nicht eingeführt?

Life is a short

6.911 Beiträge seit 2009
vor 13 Jahren

Hallo,

warum wurde das da nicht eingeführt?

Weil es - außer dir - keiner braucht 😉

So wie inflames2k schon geschrieben hat sehe ich darin eher die Gefahr von Bugs als dass es helfen soll.

Mit Hilfe eines Postbuild-Skripts konnte die jeweiligen Assemblies in das Ausgabeverzeichnis kopiert werden. Vllt. hilft dir das bei der Lösung.

mfG Gü

Stellt fachliche Fragen bitte im Forum, damit von den Antworten alle profitieren. Daher beantworte ich solche Fragen nicht per PM.

"Alle sagten, das geht nicht! Dann kam einer, der wusste das nicht - und hat's gemacht!"

S
Seikilos Themenstarter:in
753 Beiträge seit 2006
vor 13 Jahren

Wenn ich mit Library X baue, aber Library Y ins Bin kopiere, geht das nicht total in die Hose?

Es geht hier auch nicht unbedingt um Debug und Release, sondern andere Konfigurationen, die andere Ausgangssituation vorraussetzen, was halt nicht geht, wenn ich nur eine Lib anziehen kann

Life is a short

6.911 Beiträge seit 2009
vor 13 Jahren

Hallo,

Wenn ich mit Library X baue, aber Library Y ins Bin kopiere, geht das nicht total in die Hose?

In der Regel schon - das ist ja das Problem auf das schon inflames2k und ich hinaus wollten. Release- und Debug-Version des gleichen Codes können auch unterschiedlich sein.

Es geht hier auch nicht unbedingt um Debug und Release, sondern andere Konfigurationen

Gehts um die Assemblies oder um die *.config-Dateien?

mfG Gü

Stellt fachliche Fragen bitte im Forum, damit von den Antworten alle profitieren. Daher beantworte ich solche Fragen nicht per PM.

"Alle sagten, das geht nicht! Dann kam einer, der wusste das nicht - und hat's gemacht!"

S
Seikilos Themenstarter:in
753 Beiträge seit 2006
vor 13 Jahren

Es geht um Assemblies.
Ein Beispiel ist eine Konfiguration von Anwendungen, die Direct X unterstützen. Es passieren unter DirectX 9 andere Dinge, als unter DirectX 11, daher benötige ich für die beiden Configs auch zwei unterschiedliche Referenzen.
Man kann ja eine Referenz nicht unter einer bestimmten Config hinzufügen, sondern immer nur für das Projekt im Allgemeinen

Life is a short

2.298 Beiträge seit 2010
vor 13 Jahren

Ähm, wo rin besteht aber der Sinn, dass du einmal mit DX9 und einmal mit DX11 entwickelst?

Vorallem wenn es sich um Debug und Release handelt?

Wenn du nur 2 Versionen erstellen willst, würd ich das mit Postbuild so machen, dass 2 Release ausgaben mit der jeweiligen DX Assembly erstellt werden. Aber Debug wäre zum Beispiel nichts für eine Auslieferung. 😃

Wissen ist nicht alles. Man muss es auch anwenden können.

PS Fritz!Box API - TR-064 Schnittstelle | PS EventLogManager |

S
Seikilos Themenstarter:in
753 Beiträge seit 2006
vor 13 Jahren

Debug und Release waren nur Beispiele.
Es gibt DX 9 Debug und Release und DX 11 Debug und Release.
Ich habe nur der Einfacheit halber nur von Debug und Release geredet.
Es ist Third Party Code, der XP und neuere Betriebssysteme unterstützt und da DX 11 auf XP nicht läuft, ist DX 9 Fallback.
Aber das sollte ja auch keine Grundsatzdiskussion werden, warum wir es so machen. Wir haben an der Stelle keine Wahl, weil es eine Middleware ist, die wir selber bauen.

Life is a short

1.378 Beiträge seit 2006
vor 13 Jahren

Vielleicht könntest du 2 verschiedene Projekte erstellen, die die selben Codefiles verlinken aber in den Referenzen eben die unterschiedlichen Assemblies haben.

Lg XXX

/EDIT: Hab mal ein kleines Beispielprojekt angehängt. Es funktioniert eigentlich nur muss man vorm starten das Projekt "cleanen" damit die alten assemblies gelöscht werden.

6.911 Beiträge seit 2009
vor 13 Jahren

Hallo,

möglich wäre somit auch eine separate Projektkonfiguration zu erstellen - eine für DX9 und eine für DX11. Wenn du direkt in der *.csprj-Datei rumwerkst sollte es auch möglich sein dort die Verweise entsprechend Konfiguration zu setzen.

mfG Gü

Stellt fachliche Fragen bitte im Forum, damit von den Antworten alle profitieren. Daher beantworte ich solche Fragen nicht per PM.

"Alle sagten, das geht nicht! Dann kam einer, der wusste das nicht - und hat's gemacht!"

F
10.010 Beiträge seit 2004
vor 13 Jahren

Oder auf Codeproject mal nach Lexware suchen.

S
Seikilos Themenstarter:in
753 Beiträge seit 2006
vor 13 Jahren

Lexware scheint mein Retter zu sein 😃

Danke!

Life is a short

L
168 Beiträge seit 2008
vor 13 Jahren

Mir fallen spontan mehrer Einsatzgebiete für sowas ein. Bspw. Könnten man eine Konfiguration mit einem 32 bit und eine mit 64 bit assembly erstellen.

In dem Lexware Beitrag steht explizit VS 2005 / 2008 drin. Heißt das, dass es mit VS 2010 standardmäßig geht?

S
Seikilos Themenstarter:in
753 Beiträge seit 2006
vor 13 Jahren

Lexware fällt auf die Nase. $(Configuration) in die proj Datei reinzuschreiben hilft nichts, wenn $(Configuration) nicht der Name des Ordners ist, in dem die Assembly liegt 😕

Wenn ich ein Compilation Symbol definiere, ala CONFIG=MeineConfig, so kann ich diese dann nicht mittels $(CONFIG) in der proj Datei einsetzen. Hmpf!

Life is a short