War*_*ren 37 msdeploy webdeploy
是否可以将文件夹(普通Html文件)的内容部署到远程IIS6/7服务器上的特定Web应用程序?
以下命令不会出错,但也不会将任何文件发布到远程服务器:
msdeploy.exe -verb:sync -source:dirPath="c:\myHtmlFiles" -dest:auto,ComputerName="http://deploy.mycompany.co.uk/msdeploy?site=TestSite",includeAcls="false",username="administrator",password="myPassword" -enableRule:DoNotDeleteRule -disableLink:AppPoolExtension -disableLink:ContentExtension -allowUntrusted
Run Code Online (Sandbox Code Playgroud)
注意:
Say*_*imi 76
我刚刚在http://sedodream.com/2012/08/20/WebDeployMSDeployHowToSyncAFolder.aspx上写了一篇博文来回答这个问题.从您的问题来看,您似乎对MSDeploy非常熟悉,所以答案可能有点冗长,但我希望对MSDeploy知之甚少的人能够理解.我已经粘贴了下面的答案.
Web Deploy(又名MSDeploy)使用提供者模型,并且有大量提供者可用.给你一些提供者的例子; 在同步IIS Web应用程序时,您将使用iisApp,对于MSDeploy程序包,您将使用程序包,Web服务器webServer等.如果要将本地文件夹同步到远程IIS路径,则可以使用contentPath提供程序.您还可以使用此提供程序将文件夹从一个网站同步到另一个网站.
在这种情况下我们想要做的一般想法是将PC中的文件夹同步到IIS网站.调用msdeploy.exe可能有点冗长,所以让我们一步一步构造命令.我们将使用下面的模板.
msdeploy.exe -verb:sync -source:contentPath="" -dest:contentPath=""
Run Code Online (Sandbox Code Playgroud)
我们使用同步动词来描述我们要做的事情,然后对source和dest使用contentPath提供程序.现在让我们填写这些值应该是什么.对于源值,您需要将完整路径传递到要同步的文件夹.在我的例子中,文件位于C:\ temp\files-to-pub.对于dest值,您将把文件夹的路径作为IIS路径.在我的情况下,我正在同步的网站名为sayedupdemo,因此我想要同步的IIS路径是' sayedupdemo/files-to-pub '.现在给我们.
msdeploy.exe –verb:sync -source:contentPath="C:\temp\files-to-pub" -dest:contentPath='sayedupdemo/files-to-pub'
Run Code Online (Sandbox Code Playgroud)
对于dest值,我们没有给出任何参数来指示那些命令应该被发送到哪个服务器.我们需要添加这些参数.通常需要传入的参数是.
就我而言,我将发布到Windows Azure网站.所以我将使用的值是:
所有这些值都可以在.publishSettings文件中找到(可以从WindowsAzure.com的Web站点仪表板下载).对于ComputerName值,您需要附加站点名称以获取完整的URL.在上面的示例中,我手动添加?site=sayedupdemo,这与Azure门户中显示的名称相同.所以现在我们拥有的命令就是.
msdeploy.exe
–verb:sync
-source:contentPath="C:\temp\files-to-pub"
-dest:contentPath='sayedupdemo/files-to-pub'
,ComputerName="https://waws-prod-blu-001.publish.azurewebsites.windows.net/msdeploy.axd?site=sayedupdemo"
,UserName='$sayedupdemo'
,Password='thisIsNotMyRealPassword'
,AuthType='Basic'
Run Code Online (Sandbox Code Playgroud)
好的,我们快到了!在我的情况下,我想确保在此过程中我不从服务器中删除任何文件.所以我也会补充一下–enableRule:DoNotDeleteRule.所以现在我们的命令.
msdeploy.exe
–verb:sync
-source:contentPath="C:\temp\files-to-pub"
-dest:contentPath='sayedupdemo/files-to-pub'
,ComputerName="https://waws-prod-blu-001.publish.azurewebsites.windows.net/msdeploy.axd?site=sayedupdemo"
,UserName='$sayedupdemo'
,Password='thisIsNotMyRealPassword'
,AuthType='Basic'
-enableRule:DoNotDeleteRule
Run Code Online (Sandbox Code Playgroud)
在执行此命令之前,我将首先执行它传递–whatif.这将为我提供实际操作的摘要,而不会实际导致任何更改.当我这样做时,结果如下图所示.

在我确认更改都是故意的后,我删除了–whatif并执行了命令.之后,本地文件发布到远程服务器.现在我已经同步了每个发布的文件,这将导致只发布已更改的文件.
如果您想学习如何snyc单个文件,您可以看到我之前的博客文章如何在发布期间使您的Web应用程序脱机.
在您的情况下,我注意到您正在使用dest:auto,您可以使用它,但您必须将IIS应用程序名称作为参数传递,它将替换该文件夹的路径.以下是命令.
msdeploy.exe
-verb:sync
-source:contentPath="C:\temp\files-to-pub"
-dest:auto
,ComputerName="https://waws-prod-blu-001.publish.azurewebsites.windows.net/msdeploy.axd?site=sayedupdemo"
,UserName='$sayedupdemo'
,Password='thisIsNotMyRealPassword'
,AuthType='Basic'
-enableRule:DoNotDeleteRule
-setParam:value='sayedupdemo',kind=ProviderPath,scope=contentPath,match='^C:\\temp\\files-to-pub$'
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
34191 次 |
| 最近记录: |