【问题标题】:What exactly is the Auto Provider in Web Deploy (msdeploy.exe)Web Deploy 中的 Auto Provider 到底是什么 (msdeploy.exe)
【发布时间】:2011-08-17 17:42:28
【问题描述】:

有人能解释一下(比 technet/msdn 文档更好)汽车提供者究竟做了什么,它是如何工作的,以及何时使用它。

这是关于 Web 部署的。我看过很多指定 -dest:auto 的文档,这对我来说并没有什么意义。

自动提供程序指定目标上的提供程序将是 与源提供程序相同。

例子

msdeploy.exe -verb:sync -source:appHostConfig="MySite" -dest:auto,computername=Server1

自动提供程序使您可以避免输入完整路径 -dest 参数,当目标参数与 -源参数。它还消除了复制清单文件的需要 独立于存档或包。

自动提供程序采用您指定的来源并使用 目标计算机上的相应位置。例如,如果 您指定 appHostConfig=Site1 作为源,目标在 目标计算机将是 Site1。这在您需要时很有用 将网站“按原样”同步到远程计算机。

technet docs for auto provider

没有意义的例子:

msdeploy.exe -verb:sync -source:package=myapp.zip -dest:auto

您为什么要将目标完全设置为源?重点是什么?你不是简单地用iteslf 覆盖源代码吗?

在VS2010中发布包生成的cmd文件生成如下:

"C:\Program Files\IIS\Microsoft Web Deploy V2\\msdeploy.exe" -source:package='MySourcePath' -dest:auto"  

自动不是意味着源只会覆盖自己吗?但它没有,它实际上更新了 IIS 网站(基于清单中的设置)

我尝试使用包作为目标,在这种情况下它确实更新了源包而不是 IIS 站点。

这个问题的催化剂是我正在实施 CI,而且我过去一直使用 msbuild/xcopy。我现在想使用 msdeploy。我想了解它,而不是简单地调用从 Visual Studio 生成的 myproject.cmd

例如,this SO link 指定使用自动提供程序作为 dest 参数。

谢谢

【问题讨论】:

    标签: msdeploy webdeploy


    【解决方案1】:

    我想你实际上已经为自己找到了答案。

    如果源是一个包而目标是自动的,这仅仅意味着指定的组件在包内将被“解压缩”并放置在目标服务器上。在 -source:package -dest:auto 语法中,“auto”not 表示包本身就是目标。

    而且,正如您所观察到的,如果您指定一个包作为目标,那么您为源指定的任何内容都会被打包为一个 zip 文件,您以后可以将其用作源以部署到其他地方。

    【讨论】:

    • 我知道源将在站点内定义,但无论出于何种原因,这在某种程度上等同于忽略命令中指定的 -ignore 属性。我正在尝试这样做,因为我希望所说的虚拟目录内容受到主应用程序的身份验证的保护。我在这里发布了我的问题:stackoverflow.com/questions/23548022/…
    猜你喜欢
    • 2011-12-16
    • 1970-01-01
    • 1970-01-01
    • 2014-02-23
    • 2013-07-02
    • 2012-06-23
    • 1970-01-01
    • 1970-01-01
    • 2016-10-03
    相关资源
    最近更新 更多