Publicera från TFS till IIS

Share on:

Edit build definition

Process -> Items to Build

Välj solutionfilen, samt konfigurationen du vill bygga (så att det blir rätt web.config). Viktigt att det blir rättstavat, case sensitive. Fyll i om ditt värde inte finns.

Under Process -> Advanced -> MSBuild Arguments

/p:CreatePackageOnPublish=true /p:DeployOnBuild=true /p:AllowUntrustedCertificate=True

Redigera projektfilerna du vill publicera

Högerklicka på projektet i solution explorer, välj Unload project. Högerklicka igen och välj Edit file. Under första så anges default-värden för alla konfigurationer. Lägg till:

1	<DeployOnBuild>False</DeployOnBuild>
2	<DeployTarget>MsDeployPublish</DeployTarget>
3	<CreatePackageOnPublish>True</CreatePackageOnPublish>
4	<MSDeployPublishMethod>WMSVC</MSDeployPublishMethod>
5	<UserName>user</UserName>
6	<Password>pw</Password>

Sedan under för konfigurationen du vill publicera:

1<DeployOnBuild>True</DeployOnBuild>
2<MSDeployServiceUrl>https://server:8172/msdeploy.axd</MSDeployServiceUrl>
3<DeployIisAppPath>Default Web Site/MySite</DeployIisAppPath>

Glöm inte checka in projektfilen innan du skapar nytt bygge.

Kontrollera på byggservern

C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v11.0 måste innehålla katalogerna Web och WebApplications. I annat fall kan du ta dem från din maskin.

Installera Web Deploy och Kontrollera på target-servern

Öppna IIS Manager, markera servern se att Management Service finns under Management, och i den så ska det vara enablat (om det är en remote-server) och startat.

Öppna Web Platform installer sök på recommended och installera recommended någonting for Hosting någonting.

Avsluta med att endast installer Web Deploy 3.5 for Hosting Services (3.6 verkar inte fungera).

IIS Manager users

Om man vill publicera med en IIS Manager user (och inte ett datorkonto) så skapar man en användare, och ger den access till siten genom att högerklicka på den i vänsterlistan och väljer Deploy->Configure - då ska den får rätt läsrättigheter till katalogen etc. Sen när man publicerar så ska man göra det till handlern (axd-filen), t ex: https://server/msdeploy.axd?Site=Default%20Web%20Site

När man publicerar med ett användarkonto kan man publicera till servernamnet endast.

Vid 404 Not found ERROR___DESTINATION___NOT__REACHABLE

Om axd-filen är nåbar i webbläsaren (kolla med F12-tools) men den inte hittar siten, så: Web Deploy måste installeras efter deployment manager, så installera om Web Deploy för att vara säker på att den kickar igång.

Om du inte vill publicera till IIS, utan skapa ett web deploy zip-paket

Här räcker det med att ange följande i MSBuild Arguments i Edit Build Definition. Har man en speciell parameterfil för just detta bygge så ange: ProjectParametersXMLFile (relativt till roten i webprojektet) annars läser den från defaultfilen parameters.xml i roten på webprojektet - om den finns.

/p:CreatePackageOnPublish=true /p:DeployOnBuild=true  /p:DeployTarget=Package /p:ProjectParametersXMLFile=parameters_release.xml

Missing or Invalid property value for $(MsDeployServiceUrl)

Ett eventuellt felmeddelande man kan stöta på vid bygge är:

1Web Deploy publish/package validating error: Missing or Invalid property value for $(MsDeployServiceUrl)

Och här behöver man se i Configuration Manager (dropdownen i Visual Studio där man väljer configuration som ska användas) att alla applikationer som ska byggas är inställd på rätt configuration som pekas på i projektfilen.