如果注册表项不存在,如何阻止MSDeploy regKey提供程序失败

时间:2010-10-27 19:55:18

标签: msdeploy

我正在使用MSDeploy移动很多IIS网站,我遇到了一个问题,我试图将3个注册表项作为移动的一部分,但是每个网站上并不总是存在所有3个注册表项。 / p>

所以问题是:有没有办法让MSDeploy移动注册表项,如果它们在源代码上,并且如果它们不存在则默默地跳过它们?

我尝试过强制启用和禁用SkipInvalidSource规则,但它似乎没有影响这个问题。

还有一个最后的注释,我正在使用源文件的清单文件(其中包含3个regKey提供程序的条目)。

1 个答案:

答案 0 :(得分:0)

这里的信息不够充分:

  • 你的Windows版本是什么
  • 您对regkey提供商的清单是什么样的

一般而言......您需要确保在使用regKey提供程序之前使用它:

我确定你已经看过这个,但以下是2个可能有帮助的参考文献:

来自Web Deploy Rules

SkipInvalidSource(跳过无效的来源规则)[0.50]
如果找不到数据源,则跳过来自提供程序的数据同步(例如,使用regKey提供程序并且指定的注册表项不存在)。默认情况下启用此规则。

Web Deploy regKey Provider

<强>注意: 注册表项和值的ACL在同步操作中保留,但注册表中的某些路径可能需要管理员权限。如果提供程序没有访问您指定的注册表项所需的权限,则提供程序将失败。

以下是不删除源包中不存在的目标上的注册表项的示例。

msdeploy -verb:sync -source:package=C:\package.zip -dest:webServer,computerName=DestServer -skip:skipAction=Delete,objectName=regKey