有人可以解释(比technet / msdn docs更好)汽车提供商究竟做了什么,它是如何工作的,以及何时使用它。
这与Web部署有关。我已经看过很多指定-dest:auto的文档,但这对我来说并没有多大意义。
自动提供程序指定目标上的提供程序 与源提供者相同。
实施例
msdeploy.exe -verb:sync -source:appHostConfig =“MySite” -dest:汽车,计算机名= Server1的
自动提供程序可让您避免输入完整路径 -dest参数,当目标参数与。相同时 -source参数。它还消除了复制清单文件的需要 与档案或包裹分开。
自动提供程序获取您指定的源并使用 目标计算机上的相应位置。例如,如果 你指定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网站(基于清单中的设置)
我尝试使用package作为目标,在这种情况下,它确实更新了源包而不是IIS站点。
这个问题的催化剂是我正在实施CI,我过去总是使用msbuild / xcopy。我想现在使用msdeploy。我想理解它,而不是简单地调用从visual studio生成的 myproject.cmd 。
例如,this SO link指定使用自动提供程序作为dest参数。
由于
答案 0 :(得分:4)
我认为你实际上已经找到了答案。
如果源是一个包并且目标是auto,那只是意味着包中指定 包的组件将被“解压缩”并放在目标服务器上。在-source:package -dest:auto语法中,“auto”不表示包本身就是目的地。
并且,正如您所观察到的,如果您指定一个包作为目标,那么您为源指定的任何内容都将打包为zip文件,以后您可以将其用作在其他地方部署的源。