windows - Web Deploy (MSDeploy) 3.6 erstat regel for at omdøbe en fil

Indlæg af Hanne Mølgaard Plasc

Problem



Jeg bruger msdeploy på kommandolinjen til at implementere en windows-tjeneste ved hjælp af sync verben til dirPath kilde- og destinationsudbydere. Hidtil så godt.


Mit projektets build-aktiver har konfigurationsfiler pr. Miljø, og under implementering til et bestemt miljø vil jeg omdøbe det målrettede miljøs konfigurationsfil til standard config-filnavnet ved hjælp af en erstatningsregel, men uanset hvordan jeg konstruerer mit erstatning Regel intet synes at få mig de resultater, jeg vil have. Jeg har prøvet med en række forskellige konfigurationer af reglen uden held, men den der synes mest logiske er denne:


-replace:objectName=filePath,scopeAttributeName=path,scopeAttributeValue=Service.Dev.exe.config,match=Service.Dev.exe.config,replace=Service.exe.config


Hvis jeg implementerer uden erstatningsreglen, anvendes både Service.Dev.exe.config og Service.exe.config med det forventede respektive indhold. Når jeg tilføjer erstatningsregelen ovenfor, får jeg bare Service.exe.config og det har indholdet af den pågældende fil fra kilden, ikke indholdet af Service.Dev.exe.config som jeg håber på. Hvis jeg bytter specifikationerne for komponenterne match og replace (og ændre regexp < -> almindelig tekst i overensstemmelse hermed) for at komme frem til:


-replace:objectName=filePath,scopeAttributeName=path,scopeAttributeValue=Service.Dev.exe.config,match=Service.exe.config,replace=Service.Dev.exe.config


Jeg får bare Service.Dev.exe.config med indholdet af Service.exe.config og ingen Service.exe.config i destinationen.


Jeg er sikker på, at jeg mangler noget indlysende, men hvad er det?

Bedste reference


Dette svarer ikke direkte til dit spørgsmål, men jeg synes det er en bedre løsning på dit rodproblem.


Det virkelige problem her er konfigurationsstyring til forskellige miljøer. Mange udviklere skaber forskellige configs for hvert miljø som du gør. Denne tilgang kræver meget dobbeltarbejde på tværs af dine forskellige config-filer, som nemt kan komme ud af synkronisering.


Den bedste tilgang, jeg har fundet for at styre konfigurationen på tværs af forskellige miljøer, er WebDeploy Parameterization. Det svarer til config-transformer, fordi du har en enkelt base config-fil, der er tweaked, så der er langt mindre dobbeltarbejde. Parameterisering er imidlertid foretrukket, fordi det gælder ændringerne ved implementeringstid i stedet for byggetid. Vi bruger dette til 50 + applikationer med stor succes.


Her er et blogindlæg med flere detaljer - http://www.dotnetcatch.com/2014/09/08/parameterizationpreview-visual-studio-extension/[15]

Andre referencer 1


Kampen og udskiftningen skal bytte


match=Service.Dev.exe.config,replace=Service.exe.config