2016-02-01 50 views
5

Ho creato una definizione di build VS su Team Services. La compilazione viene eseguita correttamente quando la accodo e vengono anche restituite le dll per tutti i progetti nella soluzione, tranne il livello di servizio che ho creato utilizzando Web Api2.Creazione non pubblicazione del progetto API Web in Visual Studio Team Services (era VS Online)

quando si scaricano gli oggetti dalla posizione di rilascio, ho cartelle che contengono le DLL per il livello dati, il livello aziendale e altri progetti di supporto. Quello che non ho è la dll del livello del servizio principale che posso distribuire sul mio IIS.

Ecco uno screenshot delle mie impostazioni di pubblicazione.

enter image description here

Cosa potrei mancare?

risposta

11

Sembra che si sta utilizzando le impostazioni predefinite per la definizione di compilazione. Con queste impostazioni, il contenuto per l'attività "Copia file" è "** \ bin \ $ (BuildConfiguration) **" mentre il progetto web api non ha la cartella buildconfiguration. Quindi non riesce a trovare i file per il progetto web api. Per copiare questi file, aggiungere un altro compito "Copy Files" e configurare le impostazioni come segue: enter image description here

Se si desidera che i file di distribuzione per il progetto, è necessario impostare voi a costruire definizione come segue:

  1. Aggiungi argomenti /p:DeployOnBuild=true;OutDir="$(build.artifactstagingdirectory)" per Visual Studio Build passaggio.
  2. Rimuovi Copy Files passaggio.
  3. Impostare il percorso da pubblicare su $(build.artifactstagingdirectory)\\_PublishedWebsites per il passaggio Publish Build Artifacts.

Quindi è necessario ottenere i file di distribuzione nella cartella di rilascio.

+0

Grazie. non sembra copiare i file come farebbe un'azione di pubblicazione. Mi aspettavo che il file global.asax e il file web.config fossero lì insieme alla cartella bin. Quando faccio clic con il pulsante destro del mouse sul progetto e utilizzo l'opzione di pubblicazione, copia tutti i file necessari per eseguire il servizio, ovvero la cartella bin e global.asax & web.config. – user20358

+0

Inoltre, il passaggio dei file di copia sembra ancora copiare le DLL dagli altri progetti. Mi aspettavo solo che i file relativi al servizio e la cartella bin fossero pubblicati. C'è un modo per controllarlo? Più tardi quando aggiungo un progetto MVC quali altri passaggi dovrei prendere? – user20358

+0

Grazie. Ha funzionato. Ma questa soluzione funzionerà se avrò più progetti di servizio e un progetto mvc nella soluzione? – user20358

0

Aprire il Gestore configurazione in VisualStudio e assicurarsi che il progetto WebAPI sia incluso per la configurazione (Debug, Release, ecc.) Che si sta creando.

enter image description here