The Demise of Xcopy Deployment
Upcoming SlideShare
Loading in...5
×
 

The Demise of Xcopy Deployment

on

  • 2,009 views

One of the great features of .Net when it first released was Xcopy deployment. No more .dll registrations, just copy the files to the web server. While this was a great feature for Microsoft ...

One of the great features of .Net when it first released was Xcopy deployment. No more .dll registrations, just copy the files to the web server. While this was a great feature for Microsoft developers, new problems emerged, specifically around managing web.config. Sections like connection strings and custom errors need to be managed between environments, which meant many copies of the files or scripts to change them. Other necessary steps, like managing permissions and IIS configuration were still outside the Xcopy process. A recent tool, MSDeploy, is now integrated into Visual Studio 2010 and makes managing these issues easier. Besides web.config, MSDeploy also manages file deployments and synchronization, ACLs, and IIS settings. If your deployments have multiple steps, need ReadMe files, or can’t be done by someone outside your team, you need to learn MSDeploy!

Statistics

Views

Total Views
2,009
Views on SlideShare
2,004
Embed Views
5

Actions

Likes
0
Downloads
5
Comments
0

3 Embeds 5

http://www.slideshare.net 2
http://sos-dev 2
http://www.linkedin.com 1

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment
  • PackageDeploySynchronizeIntegrated into VS 2010Integrated into IIS ConsoleCommand-line
  • PackageDeploySynchronizeIntegrated into VS 2010Integrated into IIS ConsoleCommand-line
  • ReadMeBat FilesScreenshotsMultiple web.configs -> xlst
  • Extensible
  • appHostConfig IIS 7 configurationappHostSchema IIS 7 configuration schemaappPoolConfig IIS 7 Application PoolarchiveDir Archive directoryauto Automatic destinationcert CertificatecomObject32 32-bit COM objectcomObject64 64-bit COM objectcontentPath File System ContentcreateApp Defines an application in the IIS configuration system.dbFullSql Deploy SQL databasedbMySql Deploy MySql databasedirPath DirectoryfcgiExtConfig FcgiExt.ini settings or fastCgi section configurationfilePath FilegacAssembly GAC assemblyiisApp Web ApplicationmachineConfig32 NET 32-bit machine configurationmachineConfig64 NET 64-bit machine configurationmanifest Custom manifest filemetaKeyMetabase keypackage .zip file packagerecycleApp Recycles, starts, or stops an application's app pool, or unloads an application's app domains on IIS 7. regKey Registry keyregValue Registry valuerootWebConfig32 NET 32-bit root Web configurationrootWebConfig64 NET 64-bit root Web configurationrunCommand Runs a command on the destination when sync is called.setAcl Grant permissionsurlScanConfig UrlScan.ini settings or request Filtering section configurationwebServerFull IIS 7 Web serverwebServer60 Full IIS 6 Web server
  • When adding the Web Server (IIS) role, be sure to install Management Service.In the Services snap-in, find the Web Management Service and set its startup to Automatic (it’s manual by default). Don’t start it yet. Open the Internet Information Services Manager, and select the server. Open the Management Service feature. Check Enable Remote Connections. Choose a port (or keep the default), IP, Certificate, choose any restrictions you might require. In the Actions part of the right pane, click Apply. Click the Start link in the right pane.

The Demise of Xcopy Deployment The Demise of Xcopy Deployment Presentation Transcript

  • The Demise of Xcopy Deployment
    David Truxall, Ph.D.
  • MSDeploy
    One-Click Publish
  • Who Am I?
    Developer – Troubleshooter – Trainer - Consultant
    @davetrux
    www.davidtruxall.com/
  • Agenda
    About MSDeploy
    IIS Console
    Visual Studio 2010
    Command-Line
  • MSDeploy
    One-Click Publish
  • Why MSDeploy?
    IIS 6
    IIS 7
  • Where do I get it?
    Web Platform Installer
    Separate download
    Visual Studio 2010
  • Architecture
    Provider Based
    Package
    Deploy
    Synchronize
  • Verbs
    dump
    sync
    delete
    getDependencies
    getParameters
    getSystemInfo
  • MSDeploy Process
    IIS
    VS 2010
    Command-line
    PowerShell
    IIS
    Package
    File
    MSDeploy
    Create the
    Package
    MSDeploy
  • Deployment
    Using IIS Manager UI
    Using command file created by Visual Studio 10
    Using command line using MSDeploy.exe
    Using Power Shell support provided by MS Deploy
    Using managed APIs provided by MS Deploy
  • Create the Package
  • Deploy the Package
  • Providers
    GAC
    File System
    Certificates
    COM objects
    IIS
    Registry
    App Pools
    ACLs
    Machine Config
    MySQL
    SQL Server
    Custom
  • Integrates with IIS Console
    UI
    Import/Export
    Synchronization
    Migration
    Remember Today’s Password: Elastic Syntax
  • Agent Service
  • IIS Demo
  • Visual Studio 2010
  • Managing Web.config
    Transformation
    Connection strings
    Custom errors
    At Publish, not at Build
  • Publishing
    Offline
    Online
  • Package
    Manifest
    Contents
  • VS 2010 Demo
  • Command-Line
    msdeploy.exe -verb:<verbName>     -source:<provider>[=<pathToProviderObject>           [,<providerSetting>=<providerSettingValue>]]    [-dest:<provider>[=<pathToProviderObject>           [,<providerSetting>=<providerSettingValue>]]    ]    [-<MSDeployOperationSetting> ...]
  • Command-Line Demo
  • Continuous Integration
    <Exec Command='"C:Program FilesIISMicrosoft Web Deploymsdeploy.exe" -verb:sync -source:contentpath="$(DropLocation)$(BuildNumber)ReleaseSite" -dest:contentpath=ESTSERVERSite' ContinueOnError="false" />
  • Building A Dev Server
    Configure IIS Management Service
    Open firewall port (8172)
    Install MSDeploy
  • PowerShell in Action
  • Thanks!
    davetrux@gmail.com
    @davetrux
    www.davidtruxall.com
    Slideshare.net/davetrux
    www.linkedin.com/in/davetrux