Ich habe eine Situation, in der ich die Ausgabe Assembly von einem Projekt in das Ausgabeverzeichnis meiner Zielanwendung mit MSBuild kopieren möchte, ohne hart-Codierung Pfade in meinem MSBuild Aufgabe kopieren Hier ist das Szenario:MSBuild Kopie Ausgabe von einem anderen Projekt in die Ausgabe des aktuellen Projekts
- Projekt A - Web Application Project
- Projekt B - Dal-Interface-Projekt
- Projekt C - Dal Implementation Project
Es gibt eine Business-Schicht zu, hat aber keine Relevanz für das MSBuild-Problem, das ich lösen möchte.
Meine Business-Schicht hat einen Verweis auf mein Dal.Interface-Projekt. Mein Webprojekt hat einen Verweis auf die Business-Ebene. Wenn Sie einen Build erstellen, werden die Business-Layer- und Dal.Interface-Projekte in die Ausgabe übernommen. So weit, ist es gut. Damit die Webanwendung ausgeführt werden kann, benötigt sie die Dal-Implementierung. Ich möchte nicht, dass die Implementierung irgendwo referenziert wird, da ich die Kodierung für die Schnittstelle erzwingen möchte und keine Referenz bedeutet, dass es nicht in Intellisense usw. angezeigt wird.
Also dachte ich, dass ich das durch die MSBuild-Kopie behandeln könnte Operation als eine AfterBuild-Aufgabe (Ich habe die Dal Implementation-Setup zu erstellen, wenn das Webprojekt erstellt, nur nicht referenziert). Ich möchte Pfade oder irgendetwas anderes in den MSBuild-Parametern nicht fest codieren, also versuche ich herauszufinden, wie ich die Ausgabe des Dal-Projekts aus der MSBuild-Datei des Webanwendungsprojekts referenzieren kann.
So basierend auf den Projekten oben erwähnt, ist dies, was ich sehen will geschehen:
- Web App build
- Alle erforderlichen Projekte bauen gekickt wird (bereits konfiguriert, so dass dies der Fall ist)
- MSBuild "Afterbuild" Task startet und die Ausgabe von Projekt C (Dal Implementation) ist in das Verzeichnis bin von Project A (Web App)
kopiert Teil 3 ist, wo ich bin stecken.
Ich bin mir sicher, dass dies getan werden kann, ich finde nur keine gute Referenz zu helfen. Vielen Dank im Voraus für jede Hilfe.
ich + 1'd dieses Alter vor. Wie Sie vorgeschlagen haben, ist das nicht sauber - offensichtlich bricht dies, wenn sich der OutDir ändert, z. beim Bauen mit TeamBuild. (Nur für den Fall, dass andere dies sehen und die Mängel nicht erkennen). Siehe auch http://stackoverflow.com/questions/2325598/determining-outputs-of-a-projectreference-in-msbuild/2325620#2325620 –
Siehe http: // stackoverflow.com/questions/2325598/determining-outputs-eines-projectreference-in-msbuild/2325620 # 2325620 für ein Beispiel für eine Art und Weise der Adressierung des Anliegens erwähnte ich –