Your SlideShare is downloading. ×
0
The Demise of Xcopy Deployment<br />David Truxall, Ph.D.<br />
MSDeploy<br />One-Click Publish<br />
Who Am I?<br />Developer – Troubleshooter – Trainer - Consultant<br />@davetrux<br />www.davidtruxall.com/<br />
Agenda<br />About MSDeploy<br />IIS Console<br />Visual Studio 2010<br />Command-Line<br />
MSDeploy<br />One-Click Publish<br />
Why MSDeploy?<br />IIS 6<br />IIS 7<br />
Where do I get it?<br />Web Platform Installer<br />Separate download<br />Visual Studio 2010<br />
Architecture<br />Provider Based<br />Package<br />Deploy<br />Synchronize<br />
Verbs<br />dump<br />sync<br />delete<br />getDependencies<br />getParameters<br />getSystemInfo<br />
MSDeploy Process<br />IIS<br />VS 2010<br />Command-line<br />PowerShell<br />IIS<br />Package<br />File<br />MSDeploy<br ...
Deployment<br />Using IIS Manager UI <br />Using command file created by Visual Studio 10 <br />Using command line using M...
Create the Package<br />
Deploy the Package<br />
Providers<br />GAC<br />File System<br />Certificates<br />COM objects<br />IIS<br />Registry<br />App Pools<br />ACLs<br ...
Integrates with IIS Console<br />UI<br />Import/Export<br />Synchronization<br />Migration<br />Remember Today’s Password:...
Agent Service<br />
IIS Demo<br />
Visual Studio 2010<br />
Managing Web.config<br />Transformation<br />Connection strings<br />Custom errors<br />At Publish, not at Build<br />
Publishing<br />Offline<br />Online<br />
Package<br />Manifest<br />Contents<br />
VS 2010 Demo<br />
Command-Line<br />msdeploy.exe -verb:<verbName>     -source:<provider>[=<pathToProviderObject>           [,<providerSettin...
Command-Line Demo<br />
Continuous Integration<br /><Exec Command='"C:Program FilesIISMicrosoft Web Deploymsdeploy.exe" 	-verb:sync	-source:conten...
Building A Dev Server<br />Configure IIS Management Service<br />Open firewall port (8172)<br />Install MSDeploy<br />
PowerShell in Action<br />
Thanks!<br />davetrux@gmail.com<br />@davetrux<br />www.davidtruxall.com<br />Slideshare.net/davetrux<br />www.linkedin.co...
Upcoming SlideShare
Loading in...5
×

The Demise of Xcopy Deployment

1,598

Published on

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!

Published in: Education
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
1,598
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
6
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide
  • PackageDeploySynchronizeIntegrated into VS 2010Integrated into IIS ConsoleCommand-line
  • PackageDeploySynchronizeIntegrated into VS 2010Integrated into IIS ConsoleCommand-line
  • ReadMeBat FilesScreenshotsMultiple web.configs -&gt; 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&apos;s app pool, or unloads an application&apos;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.
  • Transcript of "The Demise of Xcopy Deployment"

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

      Clipping is a handy way to collect important slides you want to go back to later.

    ×