Я делаю пакет msdeploy следующим образом:
msdeploy.exe -verb:sync -source:iisApp=c:\content\ -dest:package=c:\pkg.zip
c:В каталоге \ content есть единственный файл index.html .
Результат выглядит следующим образом:
Info: Adding package (package).
Info: Adding child iisApp (c:\content\).
Info: Adding child createApp (c:\content\).
Info: Adding child contentPath (c:\content\).
Info: Adding child dirPath (c:\content\).
Info: Adding child filePath (c:\content\index.html).
Total changes: 6 (6 added, 0 deleted, 0 updated, 0 parameters changed, 0 bytes copied)
Если я извлеку содержимое c: \ pkg. zip в каталог c: \ pkg это выглядит так:
archive.xml
systemInfo.xml
Content\c_C
Content\c_C\content
Content\c_C\content\index.html
Если я сбрасываю пакет следующим образом:
msdeploy.exe -verb:dump -source:package=c:\pkg.zip -xml
я получаю:
<output>
<MSDeploy.iisApp>
<iisApp path="c:\content\">
<createApp
path="c:\content\"
isDest="False"
managedRuntimeVersion=""
enable32BitAppOnWin64=""
managedPipelineMode=""
applicationPool=""
appExists="True" />
<contentPath path="c:\content\">
<dirPath
path="c:\content\"
securityDescriptor="D:"
parentSecurityDescriptors=""
attributes="Directory">
<filePath
path="index.html"
size="0"
attributes="Archive"
lastWriteTime="07/07/2011 20:58:00"
securityDescriptor="D:" />
</dirPath>
</contentPath>
</iisApp>
</MSDeploy.iisApp>
</output>
Я не хочу, чтобы пакет зависел от текущего местоположения файлов сайта. Я собираюсь отправить пакет покупателю и не хочу, чтобы какие-либо подробности о процессе упаковки были отправлены вместе с пакетом. Я хочу, чтобы содержимое пакета c: \ pkg.zip было таким:
archive.xml
systemInfo.xml
Content\index.html
Я хочу, чтобы пакет мог создавать приложение IIS, поэтому мне нужен виртуальный путь. Я также хочу установить пакет в папку по умолчанию. Так что физический путь тоже должен измениться. Я хочу, чтобы дамп выглядел примерно так:
<output>
<MSDeploy.iisApp>
<iisApp path="Default Web Site\Site">
<createApp
path="Default Web Site\Site"
isDest="False"
managedRuntimeVersion=""
enable32BitAppOnWin64=""
managedPipelineMode=""
applicationPool=""
appExists="False" />
<contentPath path="c:\inetpub\wwwroot\site">
<dirPath
path="c:\inetpub\wwwroot\site"
securityDescriptor="D:"
parentSecurityDescriptors=""
attributes="Directory">
<filePath
path="index.html"
size="0"
attributes="Archive"
lastWriteTime="07/07/2011 20:58:00"
securityDescriptor="D:" />
</dirPath>
</contentPath>
</iisApp>
</MSDeploy.iisApp>
</output>
Я изменил атрибуты iisApp и createApp provider path на Веб-сайт по умолчанию \ Сайт
. И я изменил атрибуты contentPath и dirPath provider path на c: \ inetpub \ wwwroot \ site
.