3

我正在使用 MSDeploy 移动许多 IIS 网站,我遇到了一个问题,我试图在移动过程中包含 3 个注册表项,但每个网站上并不总是存在所有 3 个注册表项。

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

我已经尝试过强制启用和禁用 SkipInvalidSource 规则,但它似乎并没有以任何方式影响问题。

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

4

1 回答 1

0

这里没有足够的信息:

  • 你的windows版本是多少
  • 您的 regkey 提供程序清单是什么样的

一般来说......您需要确定您正在使用 regKey 提供程序,然后它才能工作:

我敢肯定您已经看到了这一点,但以防万一这里有 2 个参考资料可能会有所帮助:

Web 部署规则

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

Web 部署 regKey 提供程序

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

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

msdeploy -verb:sync -source:package=C:\package.zip -dest:webServer,computerName=DestServer -skip:skipAction=Delete,objectName=regKey 
于 2011-10-24T22:19:42.033 回答