2017-02-24 1 views
0

Ich habe ein klassisches Cloud Services-Projekt, das in ServiceDefinition.csdef wie so mehrere Websites auf einem einzigen Dienst, konfiguriert hat:Wie kann ich ein Azure Cloud Services-Projekt mit mehreren Websites in einem einzelnen Dienst mithilfe von Visual Studio Team Services veröffentlichen?

von einer vorkompilierte .cspkg Visual Studio 2015 und setzt Dies kompiliert und Pakete korrekt ohne Probleme Datei zum Cloud-Service.

Wir sind vor kurzem zu Visual Studio Team Services für DevOps gewechselt und versuchen, diese Lösung so zu konfigurieren, dass sie in der Cloud mithilfe der bereitgestellten Build-Vorlage für Azure Cloud Services erstellt und bereitgestellt wird.

Der .sln Build-Schritt abgeschlossen ist richtig, aber die .ccproj Erstellungsschritt schlägt mit dem folgenden Fehler:

PE.Azure\bin\ServiceDefinition.csdef (0, 0) 
PE.Azure\bin\ServiceDefinition.csdef(0,0): Error CloudServices079: Cannot find the physical directory 'D:\a\1\PE.Roles.API' for virtual path API/. 
Process 'msbuild.exe' exited with code '1'. 

Meine Build Argumente sind: /t:Publish /p:TargetProfile=$(targetProfile) /p:DebugType=None /p:SkipInvalidConfigurations=true /p:OutputPath=bin\ /p:PublishDir="$(build.artifactstagingdirectory)\\"

ich eine Reihe von Blog-Posts gefunden habe und SO Fragen zu ähnlichen Themen, aber nichts, was genau dies angeht (und nichts, was in den letzten Jahren gepostet wurde).

aktualisieren

ich ein TFVC Repo für das Projekt erstellt habe und implementiert, um den Abbildungsschritt, wie unten vorgeschlagen:

enter image description here

... aber ich bekomme immer noch die gleichen Fehler : enter image description here

Was muss ich tun, damit das funktioniert?

+1

Ich hatte diese Frage vor einigen Jahren https://stackoverflow.com/questions/16869047/issue-with-azure-tfs-build-in-the-case-multiple-websites-in-single-webrole zu dieser Zeit Ich bin mit manueller Veröffentlichung gelandet, denke ich. später sagte MS, dass es in VS 2015 https://visualstudio.uservoice.com/forums/330519-team-services/suggestions/5020886-support-deployment-of-multiple-websites-toa-anazur unterstützt wird, aber der Link gegeben ist jetzt ein 404. Als solche sind Web-Apps heutzutage die beliebtesten als Webroles. – Aravind

+0

Danke. Wir sind vorerst mit Webrolen beschäftigt. Ich habe Ihre Frage gesehen, aber ich hatte gehofft, MS hätte das in den letzten vier Jahren umgesetzt. – JcFx

+0

Sie könnten diesen Beitrag auch gesehen haben. es sagt, dass die Codebasis zuletzt ist. aber es spricht nicht wirklich über VSO obwohl .. https://azure.microsoft.com/en-in/resources/samples/cloud-services-dotnet-multiple-websites-in-one-webrole/ – Aravind

Antwort

1

Sie müssen die Quellzuordnung entsprechend der Einstellung von physicalDirectory ändern.

Siehe diese Probe, ihn zu ändern:

<Site name="API" physicalDirectory="..\..\..\WebGeneralDemo"> 
     <Bindings> 
      <Binding name="http" endpointName="WebGeneralDemo" /> 
     </Bindings> 
     </Site> 

enter image description here

Update:

Wenn diese Projekte in einem Git-Repository sind, können Sie die Struktur im Repository wie folgt halten:

-Repo

--AzureCloudServiceDemo

--- AzureCloudServiceDemo

--- WebRole1

--WebGeneralDemo

Wenn die Struktur nicht mögen, können Sie Ordner kopieren (Include-Dateien) von Copy file task mit

aktualisieren

im Falle von diese spezifische Frage, war die ursprüngliche Struktur des Repo wie folgt:

enter image description here

... wo die .ccproj Datei im PE.Azure Ordner vorhanden ist, und die Seite ist im PE.Roles.API Ordner veröffentlicht wird.

Der Compiler wurde für die Website-Content in das Verzeichnis ein oben die $(build.sourcesDirectory) (so D:\a\1\) auf der Suche, so dass die Aufgabe korrekt Datei kopieren wurde, den Fehler zu beheben: enter image description here

A Copy Task Dateien benötigt wurde Für jeden Standort mussten die Aufgaben nach dem Schritt Build Solution ***. sln, aber vor dem Schritt Build Solution *** .ccproj positioniert werden.

+0

Danke für die Antwort . Das scheint genau das zu sein, was ich brauche. Wo finde ich diese Mappings in VSTS? – JcFx

+0

(Um es klar zu sagen: Ich arbeite mit Git Source Control, nicht TFS. Sind Mappings für Git verfügbar?) – JcFx

+0

@JcFx Da Sie Git Source Control verwenden, können Sie die Struktur (überprüfen Sie meine Antwort) in Ihrem Repository . Auf der anderen Seite können Sie Dateien und Ordner kopieren, um diese Struktur zu haben, indem Sie den Task Datei kopieren verwenden. –

Verwandte Themen