Domanda

I want to perform a post-build step to copy some files into a website folder using MSDeploy.

Eventually I'll be doing this to a remote location (specifying computerName, userName switches etc.), but for now I'm running it locally:

"C:\Program Files\IIS\Microsoft Web Deploy V3\msdeploy.exe" 
   -AllowUntrusted -verb:sync 
   -source:dirPath="D:\files_to_copy" 
   -dest:iisApp="My Website Name"

This works, but it removes all contents of the website folder and replaces them with the contents of "D:\files_to_copy" (as you might expect!). So I was wondering how I use this simply copy to a subfolder within the site?

I've tried -dest:iisApp="My Website Name/my_subfolder" but this just creates a new IIS app called "my_subfolder" nested within the existing IIS app.

È stato utile?

Soluzione

There are providers other than iisApp, maybe dirPath is the one you want for -dest aswell?:

  • dirPath: The dirPath provider synchronizes directory content.
  • filePath: The filePath provider synchronizes individual files.
  • iisApp: The iisApp provider synchronizes directory content to a folder and marks the folder as an application.
  • contentPath: The contentPath provider synchronizes Web site content.

Altri suggerimenti

Anders's answer above provides the correct information, but the full code I used to successfully carry this out is as follows:

"C:\Program Files\IIS\Microsoft Web Deploy V3\msdeploy.exe" 
  -AllowUntrusted -verb:sync 
  -source:contentPath="D:\files_to_copy" 
  -dest:contentPath="My Website Name\my_new_folder"

Adding a single file to the root of the site (for example robots.txt) can be done using the following:

"C:\Program Files\IIS\Microsoft Web Deploy V3\msdeploy.exe" 
  -AllowUntrusted -verb:sync 
  -source:contentPath="D:\my_folder\robots.txt" 
  -dest:contentPath="My Website Name\robots.txt"

Hopefully this is a useful example for others in the future.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top