2016-03-21 18 views
6

Utworzono mały skrypt PowerShell, aby zmienić ciąg połączenia w moim pliku web.config.Jak przekazać parametry do skryptu PowerShell z procesu budowania 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) 

Dodałem go do mojego procesu kompilacji. Jak przekazać zmienne kompilacji do skryptu?

(używam nowego oparciu proces kompilacji skryptu, więc tylko mają wbudowaną „argumentów” pole dla parametru)

+0

Zmiana pliku web.config powinna nastąpić podczas procesu wydawania, a nie procesu budowania. –

+0

Używam procesu kompilacji, aby umieścić moją witrynę na dwóch serwerach testowych przy każdym meldowaniu. Jak to zrobić bez procesu kompilacji? –

Odpowiedz

6

Możesz umieścić wszystkie parametry w jednej linii w plikach Argumenty tak:

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

Dziękujemy! Mam jeszcze jedno pytanie. Jak przekazać zmienne procesu budowania? Podobnie jak w BuildConfiguration i moich niestandardowych atrybutach. –

+0

Zawiera składnię $ Env: BUILD_BUILDNUMBER z kodu źródłowego. Och, byłem głupi. –