2016-03-21 26 views
6

Ho creato un piccolo script PowerShell per modificare la stringa di connessione nel mio web.config.Come passare i parametri allo script PowerShell dal processo di creazione TFS?

param([string]$webConfigPath, [string]$connectionStringName, [string]$connectionStringValue) 

# get the full path of the web config file 
$webConfigFile = [IO.Path]::Combine($webConfigPath, 'Web.config') 
# load the XML 
$webConfig = [xml](cat $webConfigFile) 

#change the appropriate config 
$webConfig.configuration.connectionStrings.add | foreach { 
    if($_.name -eq $connectionStringName){ 
     $_.connectionString = $connectionStringValue 
    } 
} 

#save the file 
$webConfig.Save($webConfigFile) 

L'ho aggiunto al mio processo di compilazione. Come passare le variabili della build allo script?

(I utilizzare il nuovo processo di generazione basata su script, quindi ho solo un builtin "Argomenti" di campo per il parametro)

+0

Alterazione del proprio web.config dovrebbe avvenire durante il processo di rilascio, non nel processo di compilazione. –

+0

Uso il processo di compilazione per inserire il mio sito nei due server di test ad ogni check-in. Come farlo senza processo di costruzione? –

risposta

6

È possibile inserire tutti i parametri in una sola riga in file Argomenti come questo:

-webConfigPath "c:\web.config" -connectionStringName "My connection string" 
+0

Grazie! Ho ancora una domanda. Come passare le variabili del processo di compilazione? Come BuildConfiguration e i miei attributi personalizzati. –

+0

Con una sintassi $ Env: BUILD_BUILDNUMBER dal codice sorgente. Oh, sono stato stupido. –