2010-04-09 11 views
66

Desidero impacchettare il progetto di applicazione Web VS2010 pronto per la distribuzione con msdeploy. Sulla macchina di sviluppo posso fare questo usando:Pacchetto target MSBuild non trovato

MSBuild.exe "C:\path\to\WebApp.csproj" /target:package 

Ma sul mio server di build ottengo questo errore:

error MSB4057: The target "package" does not exist in the project.

Quello che mi manca sul server di build?

risposta

107

mi ha regalato questo lavoro senza installare VS2010 seguendo questi passaggi sul server di build:

  1. Se non è installato .NET Framework 4, installarlo
  2. installare lo strumento di distribuzione Web da http://www.iis.net/download/webdeploy
  3. Dalla cartella C: \ Programmi \ MSBuild \ Microsoft \ VisualStudio \ v10.0 sulla macchina di sviluppo copiare le cartelle "Web" e "Applicazioni Web" nella directory equivalente sul server di generazione.

Questo sembra funzionare per me

+3

Assicurati inoltre di utilizzare la versione .net 4 di MSBuild.exe! (in% windows% \ Microsoft.net \ Framework \ v4.0.30319) – AndyM

+7

Nel mio caso il problema era che avevo copiato attraverso la cartella "Applicazioni Web", ma non la cartella "Web". – willem

+0

Questa risposta ha eliminato questo errore. Grazie spmason! – Stewie

1

È necessario disporre di .Net 4.0 installato sul server di generazione. L'installazione di .Net 4.0 metterà a disposizione il nuovo MSBuild 4.0 che supporta progetti di applicazioni web di packaging.

Inoltre, quando si esegue msbuild.exe assicurarsi di eseguire quello che si trova nella cartella di framework .Net 4.0.

-3

Per risolvere questo problema, installare Visual Studio 2010 sul server di generazione e assicurarsi di aver installato la funzione Visual Web Developer.

+5

Non è necessario installare Visual Studio sul build server. Il processo di build/deploy dipende solo da una manciata di file (vedi il post di spmason) –

+2

Sto provando davvero a non fare downvote su questo ... –

+0

Questo è overkill – Matt

9

Lo so che è una vecchia questione, ma di recente ho incontrato lo stesso problema e nessuna delle risposte ha aiutato. Mi mancava seguente file sul mio server di build:

C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio 
    \v11.0\Web\Microsoft.Web.Publishing.targets 

è importato da:

C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio 
    \v11.0\WebApplications\Microsoft.WebApplication.targets 

Spero che questo aiuti qualcuno come me :)

+2

ha funzionato per me ... Avevo copiato la cartella di destinazione delle applicazioni web ma non la cartella web ... la compilazione avrebbe avuto successo ma non sarebbe stata implementata – jdmonty

+0

Questo era il problema per me con Visual Studio Build Tools 2017. Non avevo selezionato il carico di lavoro "Sviluppo strumenti di sviluppo Web", quindi la destinazione di pubblicazione sul Web non è stata installata. Modifica l'installazione per includere quella corretta. –

-1

anche considerare l'utilizzo msbuild con la versione, corrispondente a Versione dello strumento di distribuzione Web. Ho affrontato lo stesso problema dell'OP. La soluzione era cambiare msbuild da 4.5 a 4.0 su buildServer.

0

Ho riscontrato lo stesso problema. Risolto il problema aggiungendo:

<PropertyGroup> 
<VisualStudioVersion Condition="'$(VisualStudioVersion)' == ''">10.0</VisualStudioVersion> 
<VSToolsPath Condition="'$(VSToolsPath)' == ''">$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)</VSToolsPath> 
</PropertyGroup> 

<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" /> 

<Import Project="$(VSToolsPath)\WebApplications\Microsoft.WebApplication.targets" Condition="'$(VSToolsPath)' != ''" /> 

<Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v10.0\WebApplications\Microsoft.WebApplication.targets" Condition="false" /> 

al mio .csproj fiie.