我已经看到许多问题的答案似乎正是我正在寻找的问题,例如(MSDeploy) Deploying Contents of a Folder to a Remote IIS Server,但这些答案并不能满足我的需要。我不想在远程计算机上安装MSDeploy代理,或指定要使用的凭据。
此命令完全符合我的要求,但不使用清单,因此我的安装脚本需要知道每个包的目的地。
MSDeploy -verb:sync -disableRule:BackupRule ^
-source:package=pkg.zip ^
-dest:contentPath=\\server\share\path
如果我使用dest的清单,那个清单指定了一个contentPath(或dirPath)提供程序,例如:
<sitemanifest>
<contentPath path="\\server\share\path">
</sitemanifest>
我收到一个错误,即源(包)与dest(contentPath)不兼容。
我尝试过各种变体,例如在清单中使用完整的本地路径,&#34;,computerName = server&#34;在dest规范之后。这个想要远程计算机上的MSDeploy代理,并让我指定凭据。
我无法找到有关MSDeploy使用的任何详细文档,只有大量不满足我需求的示例。
我认为我上面尝试的第一个例子可能是正确的路径,但我需要弄清楚如何打包源或构建清单以使两者兼容。
答案 0 :(得分:0)
我认为您的问题是目标清单与用于创建程序包的清单不匹配,或者程序包不是从清单创建的。清单必须匹配。如果让VS / MSBuild创建包,则可以使用zip实用程序打开它,并找到用于创建包的清单文件(该文件名为archive.xml)。制作该文件的副本,并根据需要调整每个清单行的值。
以下是一些应该有用的博文。
http://www.dotnetcatch.com/2016/02/25/the-anatomy-of-a-webdeploy-package/
这是关于手动创建包。如果您手动创建了包,则可能需要更改以从源清单创建它。
http://www.dotnetcatch.com/2016/06/23/deploy-an-asp-net-website-not-web-application-with-msdeploy/