2017-02-24 3 views
1

Ich habe ein sehr einfaches Szenario. Ich habe ein ASP.NET Core-Projekt (.NET Framework) mit einem PublishProfile für WebDeploy. Ich habe auch .NET Core Class Library-Projekt (. Net Framework), die auf meinen Service verweist, es ist mein Testprojekt. Wenn ich diese Lösung auf TeamCity erstelle, habe ich einen Visual Studio Build-Schritt mit einigen zusätzlichen Parametern für Webdeploy, ua/p: DeployOnBuild = true. Das Problem ist jedoch, dass DeployOnBuild eine globale Einstellung ist, so dass es für alle "Service" -Projekte gilt. Ich weiß nicht warum, aber mein Testprojekt wird als veröffentlichbar behandelt, so dass es versuchen wird, auch ein Testprojekt zu implementieren, und es endet mit einem Fehler, dass es kein Veröffentlichungsprofil im Testprojekt finden kann. Wie kann ich in .sln oder in .xproj sagen, dass dies kein veröffentlichbares Projekt ist und ich nicht möchte, dass es Teil des Veröffentlichungsprozesses ist? Ich habe einige Problemumgehungen gefunden, um das Projekt zu ignorieren, aber das ist ein sehr einfaches Szenario, also denke ich, dass ich keine Hacks verwenden sollte, um das zu erreichen.Bereitstellen von ASP.NET Core-Projekt mit TeamCity und Ignorieren von Tests - WebDeploy

Antwort

1

Ich vermute, dass Sie in Ihrem Bereitstellungsschritt .sln als Ziel angeben, dass Sie jedes bereitstellbare Projekt in der .sln-Datei bereitstellen. Haben Sie stattdessen versucht, die Projektdatei zu targetieren?

Ich bin nicht mit dem Visual Studio-Build-Schritt, aber es funktioniert mit MSBuild: see screenshot

+0

Ja ich es versuche. Das Problem hier ist, dass ich dieses Projekt nicht alleine aufbauen kann, da es in diesem Projekt einen Postbuild-Schritt gibt, der einige Dateien kopiert und ich einen Fehler bekomme, dass er diese Dateien nicht kopieren kann, weil Pfad nicht gefunden werden kann. Es sieht so aus, als wäre $ (SolutionDir) in diesem Projekt nicht richtig eingestellt, wenn ich es separat erstelle. Dieses Post-Build-Ereignis ist Teil eines der referenzierten nuget-Pakete. Wissen Sie, wie das Projekt "Deployable" erkannt wird? – MistyK

+0

Ich habe es nicht selbst versucht, aber vielleicht, wenn Sie eine Build-Konfiguration 'deployment' erstellen, die nur die Webapp mit allen notwendigen Abhängigkeiten außer Ihrem Testprojekt erstellen, dann verwenden Sie den Schalter'/p: Configuration = deployment' auf TeamCity? – dbraillon

+0

danke dafür. Wie auch immer, das ist eine der Workarounds, die ich vermeiden wollte. Ich dachte, dass es einen einfacheren Weg geben sollte. – MistyK

Verwandte Themen