2013-01-18 13 views
11

Ho riconosciuto che Web Deployment Projects non sono supportati in Visual Studio 2012. Dopo aver letto this article, ho provato a far funzionare Publish Profiles.Pubblica profilo non funzionante durante la creazione del progetto di sito Web

Dopo aver installato Visual Studio Web Publish Update, sono riuscito a pubblicare progetti di siti Web e progetti di applicazioni Web con la nuova finestra di dialogo di pubblicazione in Visual Studio 2012.

Perché stiamo utilizzando TFS 2010 Team Build Ho provato a utilizzare il profilo di pubblicazione tramite i parametri MSBuild. Ma la seguente dichiarazione funziona solo per pubblicare progetti di applicazioni web.

MSBuild.exe MyWebs.sln /p:Configuration=Release /p:DeployOnBuild=true;PublishProfile=DeployToDirectory.pubxml 

Se provo a pubblicare progetti di siti Web non succede nulla. Il profilo di pubblicazione dei progetti del mio sito Web funziona solo con la nuova finestra di dialogo di pubblicazione in Visual Studio 2012, ma non quando si chiama MSBuild.

Qualche idea?

+1

Si può provare ad aggiungere VisualStudioVersion = 11.0 all'elenco delle proprietà? Se questo non funziona, se puoi inviarmi un registro dettagliato via email posso aiutarti. La mia email è sayedha [at] {MicrosoftDOTcom}. Maggiori informazioni su VisualStudioVersion su http://sedodream.com/2012/08/19/VisualStudioProjectCompatabilityAndVisualStudioVersion.aspx. –

+0

Ok, ora sto riscontrando lo stesso problema tranne che ho notato che il riepilogo della build dice che non è in grado di trovare il profilo di pubblicazione xml dove si aspetta sul server di build.Quando vado in questa posizione, trovo la VECCHIA VECCHIA (nome diverso) ma non il nuovo profilo di pubblicazione. Qualche indizio sul perché il vecchio continui a comparire? L'ho eliminato dalla soluzione e dal file system. – Ian

+0

@Ian - non sono sicuro se questo aiuta, ma ho trovato un bug (credo) dove msbuild apparirà nel posto sbagliato per il tuo profilo di pubblicazione. Prova a rimuovere ".pubxml" dall'argomento PublishProfile. Si prega di vedere qui per maggiori informazioni: http://discens.blogspot.co.uk/2013/02/msbuild-publish-profiles-and-web-site.html – gregpakes

risposta

5

Ho trascorso circa 3 settimane a lottare con questo nel mio ambiente e penso di avere una soluzione.

Penso che il problema sia che il file website.publishproj non viene mai realmente creato quando si passa la soluzione. Sono riuscito a risolvere questo facendo quanto segue:

  1. Assicurarsi di utilizzare il nuovo aggiornamento ASP.Net e Tools 2012.2. Download Here.
  2. Creare un file accanto al file di soluzione chiamato after.MyWebs.sln.targets. Questo file dovrebbe apparire come segue:

    <!--?xml version="1.0" encoding="utf-8"?--> 
    <Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> 
        <Target Name="Deploy Website" AfterTargets="Build"> 
         <Message Text="Starting Website deployment" Importance="high"> 
         </Message> 
         <MSBuild Projects="$(MSBuildProjectDirectory)\MyWebs\website.publishproj" 
         BuildInParallel="true" /> 
        </Target> 
    </Project> 
    

Quello che fa è che quando MSBuild inizia a costruire il file di soluzione, in realtà crea un file MSBuild in memoria con l'estensione metaproj. Ci sono modi per far sì che MSBuild salvi questo file sul disco in modo da poterlo ispezionare, ma è facilmente reperibile su google. Il file creato nel passaggio uno viene iniettato nel file metaproj e viene eseguito dopo la generazione.

Questo era l'unico modo in cui potevo ottenere i nuovi profili di pubblicazione per darmi l'output che usavo per ottenere con i vecchi progetti di distribuzione Web.

avvertimento: Se si desidera utilizzare questo in un TFS costruire, quindi in questo scenario, si otterrà una cartella _PublishedWebsites nel indipendenti ubicazione goccia del publishUrl specificato nel file pubxml. Questo è qualcosa che sto cercando di risolvere ma che finora non ha molta gioia.

1

Ho avuto esattamente lo stesso problema di cui sopra. Ho eliminato la seguente chiave e la compilazione automatica ha iniziato a funzionare correttamente.

**<Content Include="website.publishproj" />** 
Problemi correlati