问题
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.
回答1:
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.
回答2:
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.
来源:https://stackoverflow.com/questions/21905248/msdeploy-sync-command-to-copy-files-to-subfolder-of-iis-app