2015-07-01 24 views
5

Sto cercando di automatizzare la distribuzione di un progetto Web Api 2 con Visual Studio 2013. Ho fatto un profilo di pubblicazione denominata "Test" illustrato di seguitoVisual Studio Pubblica profilo Pubblica sbagliato configurazione di generazione

<?xml version="1.0" encoding="utf-8"?> 
    <!-- 
    This file is used by the publish/package process of your Web project. You can customize the behavior of this process 
    by editing this MSBuild file. In order to learn more about this please visit http://go.microsoft.com/fwlink/?LinkID=208121. 
    --> 
    <Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> 
    <PropertyGroup> 
     <WebPublishMethod>FileSystem</WebPublishMethod> 
     <LastUsedBuildConfiguration>Release</LastUsedBuildConfiguration> 
     <LastUsedPlatform>x86</LastUsedPlatform> 
     <SiteUrlToLaunchAfterPublish /> 
     <LaunchSiteAfterPublish>True</LaunchSiteAfterPublish> 
     <ExcludeApp_Data>False</ExcludeApp_Data> 
     <publishUrl>C:\DbServiceDeploy</publishUrl> 
     <DeleteExistingFiles>True</DeleteExistingFiles> 
    </PropertyGroup> 
    </Project> 

Anche se ha la linea <LastUsedBuildConfiguration> Release </LastUsedBuildConfiguration > sembra che Visual Studio stia pubblicando la mia build di debug. Sto chiamando msbuild in questo modo

"C:\Program Files (x86)\MSBuild\12.0\Bin\MSBuild.exe" C:\somefolder\Myproj.csproj /p: 
DeployOnBuild=true /p:PublishProfile=Test 

risposta

5

questo ottimo post del blog mi ha portato a trovare la risposta http://sedodream.com/2012/10/27/MSBuildHowToSetTheConfigurationProperty.aspx. Riassumo nel caso in cui il collegamento muoia: quando una build viene avviata, MsBuild valuta le proprietà una volta e usa quel valore per il resto della build. Poiché la proprietà Configuration si stava risolvendo con Debug, MsBuild lo utilizzava come configurazione da pubblicare.

TLDR;

Far passare la configurazione sulla riga di comando, aggiungere

/p: Configurazione = Rilasciare

alla chiamata da linea di comando

+1

L'elemento viene utilizzato da Visual Studio per impostare la configurazione di generazione prima di avviare una compilazione e pubblicare all'interno dell'IDE. Ma sulla riga di comando, devi specificarlo manualmente. – Jimmy

+0

Corretto, è solo per l'interfaccia utente di Visual Studio. Ecco perché l'abbiamo chiamato LastUsedBuildConfiguration invece di Configuration :) –

+0

@SayedIbrahimHashimi Un commento in cima al profilo di pubblicazione che dettagliasse questo capriccio mi avrebbe risparmiato un sacco di tempo, per favore considera di aggiungerlo – reggaeguitar

Problemi correlati